- 主题:Rust 有点油腻
这不是极端的例子。
还想到另外一个例子:
fn foo(stat: Arc<Mutex<Stat>>) {
let stat0 = stat.lock().unwrap();
stat0.method1();
stat0.method2();
}
这里的 stat0,看上去是 Stat类型,也是在当成 Stat 来用。很直观。
但其实 stat0 是 MutexGuard<'_, Stat> 。
要像下面这么写的话,就麻烦了(还要引入MutexGuard这个定义),也没必要:
let stat0: MutexGuard<'_, Stat> = stat.lock().unwrap();
【 在 namoamituofo 的大作中提到: 】
: 这个例子很好,说明了极端情况下类型造成的代码难读。
: 能看出来这是你用“人肉编译器”推导出来的类型。这样做容易出错不说,还必须缓存在脑子里。放在纸面上尚且难以阅读,何况放在脑子里。
: 关于这行代码,至少人肉推导想多了,可以这样写:
: ...................
--
FROM 115.220.224.*
println!("Hello, world!");
能设计出这种println!的人,一定是脑子中有一个声音“我遵循了xxx 设计哲学”,所以这个设计充满哲理、原则,甚至是神圣的。他必须要有如此强的精神力量,才能让信徒们也喜欢这样的设计。然而我不吃他这一套。
整个软件的领域是不存在任何哲学的,这些大神口中的哲学,都是解决了一个前人的问题,然后引入了一个新的问题;从一个局限性跳出来,又跳到另一个局限性中。我相信耕地这项劳动中都有非常多的哲学,但软件劳动中没有,因为它非常的Artificial。编程语言乃至所有软件领域,就是做一把铁锹,权衡到底是容量大一点,还是轻一点,不同的权衡产生了很多铁锹。
【 在 hellowub 的大作中提到: 】
: 你可以网络搜索下 "rust why name expect",有一些说明。
: 是有历史原因的。如果明白了历史原因,就能理解为什么这么叫。
: 当然我个人认为这个名字确实不直观。但无伤大雅。
: ...................
--
FROM 60.247.21.*
好了,我真的相信了。我才刚写完Hello World。你这例子我都看不懂
【 在 hellowub 的大作中提到: 】
: 这不是极端的例子。
: 还想到另外一个例子:
: fn foo(stat: Arc<Mutex<Stat>>) {
: ...................
--
FROM 60.247.21.*
Rust适合不喜欢C++但是学过Haskell的人
【 在 hellowub 的大作中提到: 】
: 学新语言的几种可能的状态:
: 1. 学到什么算什么,不动脑子。
: 2. 边学边跟之前的语言对比:
: ...................
--
FROM 104.156.253.*
我同意你的看法。
等你往后学,你会发现感叹号算个鸟
【 在 namoamituofo 的大作中提到: 】
: println!("Hello, world!");
: 能设计出这种println!的人,一定是脑子中有一个声音“我遵循了xxx 设计哲学”,所以这个设计充满哲理、原则,甚至是神圣的。他必须要有如此强的精神力量,才能让信徒们也喜欢这样的设计。然而我不吃他这一套。
: 整个软件的领域是不存在任何哲学的,这些大神口中的哲学,都是解决了一个前人的问题,然后引入了一个新的问题;从一个局限性跳出来,又跳到另一个局限性中。我相信耕地这项劳动中都有非常多的哲学,但软件劳动中没有,因为它非常的Artificial。编程语言乃至所有软件领域,就是做一把铁锹,权衡到底是容量大一点,还是轻一点,不同的权衡产生了很多铁锹。
: ...................
--
FROM 114.249.16.*
我觉得rust不适合人类学习
【 在 aosp 的大作中提到: 】
: Rust适合不喜欢C++但是学过Haskell的人
--
FROM 117.12.219.*
有敲这点字的功夫早就学明白为什么这是个宏需要带叹号了。。。。
尽搞些细枝末节的东西吐槽,没意思。要吐槽也应该吐槽rust的那些本质性的设计问题,比如所有权机制理论上无法所有边界情况都完美推导之类的
【 在 namoamituofo 的大作中提到: 】
: println!("Hello, world!");
: 能设计出这种println!的人,一定是脑子中有一个声音“我遵循了xxx 设计哲学”,所以这个设计充满哲理、原则,甚至是神圣的。他必须要有如此强的精神力量,才能让信徒们也喜欢这样的设计。然而我不吃他这一套。
: 整个软件的领域是不存在任何哲学的,这些大神口中的哲学,都是解决了一个前人的问题,然后引入了一个新的问题;从一个局限性跳出来,又跳到另一个局限性中。我相信耕地这项劳动中都有非常多的哲学,但软件劳动中没有,因为它非常的Artificial。编程语言乃至所有软件领域,就
: ...................
--
FROM 123.120.199.*
说不定以后有的语言是面向机器设计的
--
FROM 222.131.200.*
给AST宏加上!来区别于一般函数,没啥毛病。
--
FROM 171.213.171.*
道理明白
但第一次看到rust的程序,这个写法
真是 感觉写法莫名其妙+第一眼看到的语句竟然是个宏
宁可接受的 有个 特别的函数或者语句 printlf 之类的,
也不想要这个什么“规则”
【 在 poocp 的大作中提到: 】
: 给AST宏加上!来区别于一般函数,没啥毛病。
--
FROM 183.241.185.*