20230707-编程语言的变量覆盖
实现一个特性时,发现自定义的变量 position 覆盖了类的属性 Position,近期发现始终存在的一个难以复现的窗口还原 BUG 可能被因此修复了。
也曾 Debug 过,但没能复现。问题的解决就是这样,只要你还惦记着,问题总会被解决。
对于大小写不敏感度编程语言,尤其要注意大小写,所以我和我的朋友都在自己的代码范围内,对所有变量用小写及下划线来命名以规避这种难以发现的BUG。
不过 Rust 中赋值非 mut 变量会有提示,这点确实减少了 BUG,但 Rust 居然允许再次申明同名变量。
这点上来说,以前把定义写在开头的语言,比如 C、Delphi,其实也挺好的,除了有点不灵活之外。
变量初始化后,默认不允许再修改该变量。注意,修改变量是直接给变量赋值,而不是再次let声明该变量,再次声明变量是允许的,它会遮盖原变量