为什么帕斯卡禁止的方法的参数以及类的数据成员相同的标识符名字?
-
20-09-2019 - |
题
type
TPerson = class(TObject)
name : string;
constructor create(name : string);
end;
将触发编译错误。
我认为一个self
或this
指针/引用是足够好,其清晰度。那么,这样做有什么好处呢?
修改:还有一个问题,你能告诉什么是部署此策略的其他语言
解决方案
要防止命名冲突其中,参数名称将影子类的成员。它只是不能发生这样的,每一个名字是毫不含糊的。
记住,Pascal是一种束缚和自律语言;那些被设计成尽量防止常见错误。
要防止出现问题的另一种选择是Python做什么:强制实例成员this
或self
的资格,让你的的的前面加上self
每个实例成员访问
我不知道与限制任何其他语言的,虽然。但是,一些语言特性确实是独一无二的;检查异常例如是,太
不隶属于 StackOverflow