在C++和Java中只有一个返回值的原因是什么?
通常,我瞥了一眼这个事实,只是接受它作为“这就是轮子的旋转方式”,但今天我想知道这来自哪里:为什么一个函数只有一个返回(参考)值?
为什么不能,一个函数返回多个值是很难的还是不明智的?是因为对象,以及您应该如何期望数据包应始终以对对象的引用的形式返回?
如果你看到一个声明的函数是一个合约,它说明了如何调用一个函数,它应该采用哪些参数,以及它具有哪种返回值类型,那么我看不到只有一个返回值背后的逻辑,因为你可以反过来应用相同的逻辑(从而为多个返回值创建一个合约)。
我能看到的基于逻辑的唯一原因是,如果一个函数返回超过1个事物,它也应该出于超过1个原因操纵1个以上的东西,这与函数应该只做一件事的哲学背道而驰。如果一件事是操纵一个对象并返回另一个对象,那么这将是有意义的,你可以返回一个参考值与操纵的对象。
那么,为什么存在这种限制呢?