Ruby-Terminologie Frage: Ist dies eine Ruby-Deklaration, Definition und Zuordnung, die alle zur gleichen Zeit?

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

Frage

Wenn ich sage:

x = "abc"

Dies scheint eine Erklärung, Definition und Zuordnung, die alle zur gleichen Zeit, und zwar unabhängig davon, ob ich etwas über x im Programm gesagt habe, vor.

Ist das richtig?

Ich bin nicht sicher, was die richtige Terminologie für Erklärungen, Definitionen in Ruby und assigments oder wenn es sogar eine Unterscheidung zwischen diesen Dingen wegen der dynamischen Typisierung in Ruby.

@tg: In Bezug auf Ihren Punkt 2: selbst wenn x vor der existierte x = "abc" Aussage, könnten Sie die x nicht nennen = "abc" Anweisung, um eine Definition / Neudefinition

War es hilfreich?

Lösung

  1. Erklärung:. Nein
    Es macht keinen Sinn, über erklärt Variablen in Ruby zu sprechen, denn es gibt nichts, analog zu einer Erklärung in den Sprachen. Sprachen für Compiler entwickelt haben Erklärungen, da der Compiler im Voraus wissen muss, wie groß Datentypen sind und wie die verschiedenen Teile davon zuzugreifen. z , wenn ich sage, in C:.

    int *i;
    

    dann der Compiler weiß, dass irgendwo etwas Speicher zur Seite für i gesetzt ist, und es ist so groß, wie es einen Zeiger auf einen int zu halten sein muss. Schließlich wird der Linker alle Verweise Haken zusammen i, aber zumindest der Compiler weiß, dass es irgendwo da draußen.

  2. Definition:. Wahrscheinlich
    Eine Definition die Regel setzt einen Anfangswert für etwas (zumindest in den bekannten kompilierten Sprachen). Wenn x nicht vor dem x = "abc" Aussage noch nicht gab, dann denke ich dir eine Definition nennen könnte, denn das ist, wenn Ruby-Wert auf das Symbol x zuweisen hat.

    Auch wenn, Definition ist ein spezifischer Begriff, die Menschen in der Regel die anfängliche statische Zuweisung eines Wertes zu einem gewissen Variable aus, dass variable Erklärung verwenden zu unterscheiden. In Ruby, haben Sie nicht diese Art von Aussage. Sie sagen, typischerweise nur eine Variable definiert , wenn sie einen Wert irgendwo in Ihrem aktuellen Bereich zugeordnet worden ist, und Sie sagen, es ist undefined , wenn es nicht hat.

    Sie sprechen in der Regel nicht über sie eine Definition mit, weil in Ruby, daß die Mengen nur zu Zuordnung . Es gibt keinen besonderen Zusammenhang, dass Sie rechtfertigen würde sagen, Definition wie es in anderen Sprachen ist.

    Das bringt uns zu ...

  3. Zuordnung. Ja
    Sie können dies auf jeden Fall rufen Sie eine Zuordnung , da es sich um einen Wert zu dem Symbol x zuweist. Ich glaube nicht, dass jemand mit, dass nicht einverstanden ist.

Andere Tipps

So ziemlich. Und wenn auf der nächsten Zeile, die Sie tun:

x = 1

Dann haben Sie nur re-definiert es, sowie zugeordnet es (sein jetzt eine ganze Zahl, kein String). Duck Typing ist sehr unterschiedlich zu dem, was Sie wahrscheinlich früher.

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