¿Por qué Pascal prohibir el mismo nombre para el parámetro identificador de método y miembro de datos de clase?
-
20-09-2019 - |
Pregunta
type
TPerson = class(TObject)
name : string;
constructor create(name : string);
end;
activaría error del compilador.
Creo que un self
o this
puntero / referencia es lo suficientemente bueno, por su claridad. Así que, ¿cuáles son las ventajas de hacerlo?
Editar :? Una pregunta más, ¿podría mostrar lo que son los otros idiomas que implementan esta política
Solución
Para evitar conflictos de nombres cuando el nombre del parámetro podría remedar al miembro de la clase. Simplemente no puede suceder de esta manera y cada nombre es inequívoca.
Recuerde que Pascal es un servidumbre y la disciplina lenguaje ; éstas están concebidas para tratar de evitar los errores comunes.
Otra opción para evitar que el problema percibido es lo que hace Python: mandato la calificación de los miembros de instancia con this
o self
para que Tienes para cada prefijo de acceso de miembro de instancia con self
No sé de ninguna otra lengua con esta restricción, sin embargo. Sin embargo, algunas características del lenguaje de verdad únicos; comprobado excepciones, por ejemplo, son, también.