¿Por qué Pascal prohibir el mismo nombre para el parámetro identificador de método y miembro de datos de clase?

StackOverflow https://stackoverflow.com/questions/2072883

  •  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

¿Fue útil?

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.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top