2
是否有可能以类型安全的方式从元组中移除最后一个元素以用于任意元数据?
我想是这样的:元组中没有包含正确类型的最后一个元素
[A,B,C] abc = [a,b,c];
[A,B] ab = removeLast(abc);
是否有可能以类型安全的方式从元组中移除最后一个元素以用于任意元数据?
我想是这样的:元组中没有包含正确类型的最后一个元素
[A,B,C] abc = [a,b,c];
[A,B] ab = removeLast(abc);
没有呢,可惜这是不可能的,原因是一个元组类型为类型系统的Tuple
实例链表中表示,但类型系统可以”在函数的签名中表示循环或递归。 (并且有循环/递归几乎肯定会使得类型系统不可判定。)
原则上,我们原则上可以在将来解决这个问题的一种方法是拥有一个内置基元type function,它可以评估最后一个元素类型元组类型。
“原始”类型函数,我的意思是一种类型函数,不能用语言本身编写,而是由编译器提供的内置函数。
锡兰目前没有任何这样的原始类型函数,但也有一些类似的问题可以用这种方式解决。
正如我所强调的那样,这个问题不是关于最后一个元素的类型,而是关于最后一个元素的更多信息。虽然我猜这个变化不大。 –
@PaŭloEbermann当然,这基本上是一样的问题。 –