在Rust中,阴影变量为encouraged:
但是等等,这个程序不是已经有一个名为guess的变量了吗?信息技术
这项功能会不会带来以下问题:
- 难以理解的代码(更容易创建bug)
- 当一个人打算访问另一个变量时访问变量(会产生错误)
我根据自己的经验和以下来源获得了这些信息:1 2 3 4 5
决定加入变量跟踪的潜在原因是什么?
它的优势在于只创造guess
个,而不是guess_str
对guess_int
.有优点也有缺点.
What convinced the inventors of Rust that the advantages are greater than the disadvantages?
编程界对此似乎存在分歧;有些语言只发出警告,不鼓励跟踪,有些语言明确禁止跟踪,有些语言允许跟踪,有些语言甚至鼓励跟踪.原因是什么?
如果可能的话,我想了解更多,完整的答案可能包括:
- 有哪些优点/缺点?
- 阴影变量的用例是什么?
- 什么时候不用它们Rust ?
- 不同编程背景的人需要记住什么?(以及不应落入的trap )