Rust好奇怪……
感觉好像在努力避免指针这种叫法……
但是又没让值引用与句柄引用的区别对用户透明……
甚至还把句柄引用后是否可以编辑的选择权开放给用户
这不是比C还麻烦了么=_=
目前还是感觉Java最优美……可以把经历完全的放在业务逻辑上……脏活都给包装起来由API或VM干了
就是没有个无符号数……对实现个这样那样的网络协议,不太友好=_=
@TurnipG 第一次接触 ownership 是很费脑筋,不过习惯之后效率很高,手感毫无疑问是现代语言;可以确定自己用的数据在内存里只有一份,完全没有多余的拷贝,感觉非常棒。
另外没有句柄的说法,只有“值”和“引用”,一个值只有一个所有者,可以用多个只读引用或一个可编辑引用,这是编译器检查的,没有违反的可能
@wzhd
但我觉得,像Java那样,对用户完全透明岂不是更好?
Java默认对List之类的玩意是传递指针,在内存里只有一份,而且每个获得这个“指针”的程序段都可以读写……
然后多线程的线程安全由对象锁来控制(这样单线程时并不需要特别注意这个读写要怎么移交)
@TurnipG rust 可以说是在零额外开销的前提下尽可能做一门高级语言的实验吧,为了不用垃圾回收,有些东西没法完全透明;是为数不多的能完全取代 C/C++ 的语言,看起来是其中最顺手的。
不过实际上为了零开销做出的取舍好像问题并不大,很多人原来因为 C/C++ 不愿意碰底层软件,现在发现可以用高级语言做底层开发,这一点还是很有吸引力的。
另外不用垃圾回收使得编译到 webassembly 很容易,目前如果想在浏览器里实现最高的性能,不想用 c/c++ 的话只有 rust 可以选
@wzhd
呃……似乎……明白点了?
那我再去往下看看体会体会吧
不过,印象中上世纪末51单片机之类的玩意仿佛就能用C这样的高级语言来开发了?
而且像Arduino之类的东西,也有人把脏活都封装好了,让一般人可以用C来方便的写像Java一样专注于业务逻辑的代码?
@wzhd
了解了~谢谢~