为什么功能不要有参数返回类型,因为它参数输入?
-
19-08-2019 - |
题
这总是迫使我们的情况下,我需要返回多个返回一个参数,说一个列表和一个字符串。此限制是不存在在函数参数。
解决方案
此问题是什么功能语言,如F#,Haskell的等试图解决。问题是,在硬件,最初是通过CPU寄存器返回函数的返回值,所以你只能返回一个值。在这个传统的和C通过C语法++(和C#,Java)来也继承这一点。
其他提示
如果你需要经常这样做就够了,然后创建一个类只是为了保存结果,并返回来代替。
这也可以让你的文档你的功能,以同样的方式,该参数记录返回。
事实上,一些语言你到底要什么。例如Python的,看这个代码。它返回2倍的值:1串和另一个INT
>>> def myFunc():
... string_val = "techmaddy"
... int_val = 10
... return string_val, int_val
...
>>>
>>> s, i = myFunc()
>>>
>>> print s
techmaddy
>>>
>>> print i
10
我希望这会有所帮助。
PS:在内部,我想Python,在列表和未拳击它拳击它。我不知道Python的那么好,告诉你究竟它。
或,返回对象[]从你的方法,做
return new Object[] { list, string};
如果你需要更多的参数返回类型,你可以创建对
JavaScript中,幸运的你,是一种动态语言。这意味着你可以建立你想要的任何类型的对象,并返回它。这将有效地满足您有一个“参数”返回值,尽管在一个相当非类型安全方式的要求。
例如:
function stuff() {
return {
"foo": "a",
"bar": "b"
}
}
var theStuff = stuff();
alert(theStuff.foo + theStuff.bar); // should output "ab"
在的方式来处理复杂的返回行为是通过该方法调用的接口。 e.g。
public interface Results<R> {
public void processing(String stage);
public void success(String mesg, R result);
public void successes(String mesg, List<R> result);
public void thrown(Throwable t);
}
public void process(Results<R> results, String text, List<String> data);
不隶属于 StackOverflow