Warum verbietet Pascal den gleichen Namen für den Parameter der Methode und das Datenmitglied der Klasse?

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

  •  20-09-2019
  •  | 
  •  

Frage

type
    TPerson = class(TObject)
        name : string;
        constructor create(name : string);
    end;

würde Compiler -Fehler auslösen.

Ich denke ein self oder this Zeiger/Referenz ist für seine Klarheit gut genug. Also, was sind die Vorteile dazu?

BEARBEITEN: Eine weitere Frage: Könnten Sie zeigen, was die anderen Sprachen diese Richtlinie bereitstellen?

War es hilfreich?

Lösung

Um Namen zu verhindern, kollidiert der Parametername das Klassenmitglied. Es kann einfach nicht so passieren und jeder Name ist eindeutig.

Denken Sie daran, dass Pascal a ist Bondage-und-Disziplin-Sprache; Diese sind so konzipiert, dass sie versuchen, häufige Fehler zu vermeiden.

Eine weitere Option, um das wahrgenommene Problem zu verhindern this oder self so dass du haben zum Präfix jedes Instanzmitglieds zugreifen mit self.

Ich kenne jedoch keine andere Sprache mit dieser Einschränkung. Aber einige Sprachmerkmale sind in der Tat einzigartig; Überprüfte Ausnahmen beispielsweise sind auch.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top