昨晚我发现编程语言可以具有一项功能,即我们应该能够约束分配给原始数据类型的值。
例如,我应该可以说我的int类型变量只能具有0到100之间的值
int<0, 100> progress;
然后,它将在所有情况下充当普通整数,但您将无法指定约束中定义的范围之外的值。编译器将不会编译代码
progress=200
。该约束可以通过类型信息来保留。
这可能吗?它是用任何编程语言完成的吗?如果是,那么使用哪种语言?这种技术叫什么?
最佳答案
通常是不可能的。使用没有任何算术运算符的整数几乎没有意义。使用算术运算符,您可以:
int<0,100> x, u, v;
...
x = u + v; // is it in range?
如果您愿意在运行时进行检查,那么可以,从Pascal开始,几种主流语言都支持它。