<p>似乎在大多数主流编程语言中,从函数返回多个值是一件非常尴尬的事情。</p>
<p>典型的解决方案是创建一个<strong>struct</strong>或一个普通的旧数据<strong>类并返回它,或者通过引用或指针传递至少一些参数,而不是返回它们。</p>
<p>使用引用/指针相当尴尬,因为它依赖于副作用,意味着您还有另一个参数要传递。</p>
<p>类/结构解决方案也非常尴尬,因为最终会有一百万个小类/结构,这些类/结构只用于从函数返回值,从而产生不必要的混乱和冗长。</p>
<p>而且,很多时候总是需要一个返回值,其余的只在某些情况下由调用者使用。这两种解决方案都不允许调用方忽略不需要的返回类型。</p>
<p>我所知道的处理多个返回值的一种语言是Python。对于不熟悉的人,它使用tuple解包:</p>
<pre><code>a, b = foo(c) # a and b are regular variables.
myTuple = foo(c) # myTuple is a tuple of (a, b)
</code></pre>
<p>有没有其他好的办法来解决这个问题?除了Python和在非主流语言中看到的语言级解决方案之外,在现有主流语言中工作的这两种习惯用法都是受欢迎的。</p>