前几天发生在我身上的一件事是仍然需要特定类型的东西或使我们退缩的遗留物。我的意思是:我们真的需要short,int,long,bigint等吗?
我了解原因,变量/对象保留在内存中,需要分配内存,因此我们需要知道变量的大小。但是,实际上,现代编程语言不应该能够处理“自适应类型”,即,如果仅在shortint范围内分配了某些内容,则它使用较少的字节,并且如果某个内容突然分配了非常大的数量,则将分配内存符合特定情况。
浮点数,实数和双精度数有点棘手,因为类型取决于您需要的精度。但是,在大多数情况下(在.Net中),字符串通常应能够占用较少的内存,而在大多数情况下,使用ascii,但是由于unicode编码,字符串总是占用两倍的内存。
特定类型的一个论点可能是它是规范的一部分,例如,变量不应大于某个值,因此我们将其设置为shortint。但是为什么没有类型约束呢?能够为变量(和属性)设置允许的范围和值将更加灵活和强大。
我意识到改造类型体系结构存在巨大问题,因为它与底层硬件紧密集成,并且序列化之类的事情确实变得棘手。但是从编程角度来看,应该很棒吗?
type hour is range 0 .. 23;