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