这总是迫使我们的情况下,我需要返回多个返回一个参数,说一个列表和一个字符串。此限制是不存在在函数参数。

有帮助吗?

解决方案

此问题是什么功能语言,如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);
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top