在Scala中是否可以创建大小类型?

3

在Scala中是否可以创建像String(20)这样的类型?

目的是为了让编译器检查以下内容:

a: String(20) 
b: String(30)
a = b; // throws a compiler exception when no implicit conversion is available
b= a; // works just fine

注意:它不需要被命名为String
1个回答

8
是的,使用教堂数编码是可能的。Jim McBeath有一系列与此相关的好博客。从这里开始,但继续在互联网上寻找其他参考资料。然而,它并不是非常实用。

希望不久的将来,会有人卷起袖子,编写一个Scala编译器插件,以支持Sage风格的“细化类型”。当然,这将需要集成最新的定理证明器 :-) - Alex Kravets

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接