|
|
1
8
根据经验,我建议 从未 在函数签名的参数中放入元组。
为什么?好吧,如果重点是把东西组合在一起,那么元组在这方面做的工作相当微薄。当然,您可以使用嵌套元组和类型同义词来解释它们的含义,但所有这些都是脆弱的,使用适当的记录类型可以更好、更安全地完成。如你所知,向量的x分量和y分量通常是在一起的。不仅如此,从某种意义上说,将x和y组件完全隐藏在任何有趣的代码中是个好主意。这正是
常用函数签名中的元组示例如下
为什么这是个坏主意?好吧,你用一个元组来表示一个区间。。。但在结果中也要表示一些完全不同的东西,用一组得到的随机值来更新生成器。正确的方法是使用一个类型来正确地表达它是什么
…或者更好的是,分离关注点,即手动状态线程应该隐藏在适当的monad中,例如
这并不意味着你永远不应该使用元组。为了 结果 ,因此,如果有一个函数返回两个结果,但对于这两个值一起表示什么,实际上没有任何有意义的解释,那么,返回一个元组。
此外,如果将完全抽象的类型分组在一起,就不可能对它们在一起的含义有一个解释。这就是为什么
你呢
可以
也有带元组的多结果函数。例如,您需要使用延续传递样式
|
|
|
2
1
在本例中,对于大多数用途,我将使用命名的数据类型。事实上,你似乎已经有了
|