scala - 是否可以通过创建诸如PositiveInt之类的东西来限制Int并在Scala中进行编译时检查?

标签 scala types

是否可以创建受限制的Int(例如PositiveInt)并对其进行编译时检查?换句话说,可以定义一种方法,例如:

def myMethod(x: PositiveInt) = x + 1

然后有类似:
myMethod(-5) // does not compile
myMethod(0)  // does not compile
myMethod(5)  // compiles

如果可能的话,我应该如何开始定义PositiveInt,我的意思是Scala中有一种方便的技术吗?

最佳答案

这种事情称为dependent typing,不,它在Scala中不可用。

关于scala - 是否可以通过创建诸如PositiveInt之类的东西来限制Int并在Scala中进行编译时检查?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7674400/

相关文章:

scala 的 JavaScript 源代码生成库

scala - IntelliJ Idea Scala 文件在 'New' 上下文菜单中不可用

c++ - 如何为数组类型调用新运算符

C# 如何检查一个类是否实现了泛型接口(interface)?

haskell - 应用程序中的类型错误 - Haskell?

java - scala 迭代 java hashSet

scala - spark 数据框将行值转换为列名

types - 如何匹配泛型参数的具体类型?

javascript - 为什么以及如何 ([![]]+[][[]])[+!+[]+[+[]]] 评估为字母 "i"?

scala - 如何将方法限制为仅用于特定类型?