在Rust中,鼓励使用变量遮蔽:
如果可能的话,我想更多地了解,并且完整的回答可能包括:
但是等等,程序已经有一个名为guess的变量了吗?它确实有,但是Rust允许我们使用新值来遮蔽guess的先前值。
这个特性难道不会引入问题吗,比如:
- 难以跟踪代码(更容易创建bug)
- 访问变量时意图访问其他变量(创建bug)
包含变量遮蔽的决策背后的原因是什么?
它确实有优点,可以只创建guess
而不是guess_str
vs guess_int
。但是它既有优点也有缺点。
如果可能的话,我想更多地了解,并且完整的回答可能包括:
- 有哪些优势/劣势?
- 遮蔽变量的用例是什么?
- Rust中何时不应使用它们?
- 来自不同编程背景的人需要注意什么?(以及不要陷入哪些陷阱)