是的,这个东西只是用类型系统去约束业务逻辑,现代语言都可以做到。
但选择一门语言更重要的是选择了一种风格。比如我前面说的这个例子,
如果不是写这个库的人有这个洁癖,rust下当然也是可以和c一样用&&和|=的方式来读和写bit位的。
所以我才强调rust的重要性,就像pythonic就意味着飘逸,随机应变糙快猛,rustic就得严格严谨有洁癖。
而且rust真的特别适合干这个,比如我之前用他做一个运控系统,里面涉及位移单位,我设定一堆公制,英制单位,甚至还有丝这种10um的国内特有的单位。这里我直接用中文写,比如move_to(10.丝())。我甚至把相对坐标值和绝对坐标值也用单位做了约束。相对值+绝对值还是绝对值,绝对值减绝对值就是相对值,... ...
这种有量纲的感觉真的写起来非常的爽,架构定好随便搞,一有错误编译器马上就抓住了,根本错不了
【 在 beep 的大作中提到: 】
: 我最初接触到的这方面的例子就是你写的相关内容,哈哈
: 其实和rust关系不大,只要是个提供ADT类型系统的语言,nominal typing的,都可以做到这一点。甚至typescript这种structural typing的,没有sum type的,也能模拟出来凑合用。
: 关键还是人要有概念,要主动充分使用类型来描述出尽可能多的逻辑要求。否则
: ...................
--
修改:lvsoft FROM 101.229.188.*
FROM 101.229.188.*