gpt4 book ai didi

java - 调用函数的方式

转载 作者:行者123 更新时间:2023-12-02 08:28:42 24 4
gpt4 key购买 nike

我正在尝试制作一个 API。我只是想对最终程序员隐藏所有细节。我还想为他们提供调用函数的多种选项。例如

我有 4 个具有相同名称但不同签名的函数(重载函数)

function1()
function1(arg1)
function1(arg1,arg2)
function1(arg1,arg2,arg3)

在上面的序列中,第四个函数即function1(arg1,arg2,arg3)具有实际的逻辑。其余函数正在使用一些默认值调用下一个函数。

现在,如果用户按上述顺序调用第一个函数,即 function1(),那么它将调用第二个函数,即带有一些默认值的 function1(arg1)。等等。

我的问题是,这种链接可以节省 LOC(代码行)并增加理解。但从性能角度来看是否良好?

跟我的条件

  1. 我正在使用 Java
  2. 我使用的是JDK1.4。因此支持可变数量的参数。

尽管您也可以建议我在其他语言中的性能,前提是您不建议“可变数量的参数”功能。

最佳答案

一般来说,调用函数会导致内存跳转,从性能角度来说,这比顺序运行的成本更高。当仅调用几次时,即使有很多级别的链接,这也不是一个大问题。但如果在大循环中调用它,可能会出现明显的性能问题。

注意:
为了将链接减少到最少,您可以从所有简化的函数中直接调用最详细的函数(声明了所有参数)。

function1(){
function1(null,null,null);
}
function1(arg1){
function1(arg1,null,null);
}
function1(arg1,arg2){
function1(arg1,arg2,null);
}

function1(arg1,arg2,arg3){
// Actual logic here...
}

这样您就只需执行一个额外步骤。

注意:
编译器可能会通过优化调用为您带来一些优势。编译器甚至可能会将对 function1() 的初始调用替换为对 function1(null,null,null) 的调用,因为这都是 function1 () 确实如此。

关于java - 调用函数的方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3940070/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com