Scala 为什么函数n(0-22)产品n(1-22)元组n(1-22)?

Scala 为什么函数n(0-22)产品n(1-22)元组n(1-22)?,scala,Scala,该api具有函数n(0-22)ProductN(1-22)TupleN(1-22) 问题是: 1.为什么数字是22的结尾?为什么不是21岁或23岁? 2.为什么函数以0开头?但是Product和Tuple不是?让Product或Tuple不包含任何元素是没有意义的。这相当于单元 Function0之所以存在,是因为函数不一定采用参数(例如,在按名称参数的情况下) 在Tuple22和Function22的情况下,我不知道Scala团队为什么选择22作为最大值,但如果元组中的成员或函数数量超过22个

该api具有函数n(0-22)ProductN(1-22)TupleN(1-22) 问题是: 1.为什么数字是22的结尾?为什么不是21岁或23岁?
2.为什么函数以0开头?但是Product和Tuple不是?

Product
Tuple
不包含任何元素是没有意义的。这相当于
单元

Function0
之所以存在,是因为函数不一定采用参数(例如,在按名称参数的情况下)

Tuple22
Function22
的情况下,我不知道Scala团队为什么选择22作为最大值,但如果元组中的成员或函数数量超过22个参数,那肯定会很尴尬


这可能是因为JVM对一个方法可以处理多少个参数有限制。

实际上,没有任何技术理由停止在22。它是自动生成的,但必须在某个数字处停止。人们使用创建脚本来生成更大的元组和函数。你只差一个:这就是为什么他们发明了
Function0
Unit
——所以实际上每个都有23个。@Landei可能是受Jim Carrey电影的启发?