Ijs2019medienpartner.jpg

SELFHTML ist in diesem Jahr Medienpartner der IJC.

Für die Konferenz vom 21. – 25. Oktober 2019 in München verlosen wir ein Freiticket.

Weitere Informationen finden sich im SELFHTML-Forum.

Wertzuweisung

Aus SELFHTML-Wiki
Wechseln zu: Navigation, Suche

Übersicht[Bearbeiten]

In Programmier- und anderen Sprachen können Variablen oder Konstanten Werte zugewiesen bekommen.

HTML
<a href="https://selfhtml.org">SELFHTML</a>
dem Attribut href wird der Wert https://selfhtml.org zugewiesen
CSS
body { color: #888 }
der Wert der Textfarbe (color) des body-Elements wird auf #888 festgelegt
HTTP
127.0.0.1/index.html?title=test
der URL-Parameter title bekommt den Wert test zugewiesen
JavaScript
var sinnDesLebens = 42;
der Variablen sinnDesLebens wird der Wert 42 zugewiesen
PHP
$Sinn_des_Lebens = 42;
die Variable Sinn_des_Lebens erhält den Wert 42

Solcherart Zuweisungen sind keine mathematischen Gleichungen, sondern erfolgen immer von rechts nach links. Auf der linken Seite steht der Akzeptor (von lat. annehmen), der eine Zuweisung akzeptiert; rechts vom Zuweisungsoperator steht der Donator (von lat. schenken, geben), der seinen Wert übergibt.

Beispiel
$a = 42;
$b = $a;
42 = $b;
In der ersten Zeile bekommt die Variable a den Wert 42 zugewiesen, in der zweiten Zeile bekommt die Variable b den Wert der Variablen a (derzeit 42) zugewiesen. Die dritte Zeile ist ungültig, weil 42 kein Akzeptor ist.

Vergleich von Zuweisungs- und Vergleichsoperatoren[Bearbeiten]

Je nach Programmiersprache sind die Zuweisungsoperatoren unterschiedlich, auf jeden Fall muss man sie von dem Vergleichsoperator unterscheiden, der auf Gleichheit prüft. Je nach Sprache wird eine Zuweisung an Stelle eines Vergleichsoperators vom Compiler akzeptiert, unter anderem auch in JavaScript. Das liegt daran, dass die Zuweisung in diesen ein echter Operator ist, der einen Wert hat (nämlich den, der im Akzeptor gespeichert wurde), und diese Sprachen eine implizite Umwandlung beliebiger Werte in true oder false durchführen

Sprache Zuweisungsoperator Vergleichsoperator
HTML = gibt es nicht, keine Programmiersprache
CSS : gibt es nicht, keine Programmiersprache
Pascal und andere := =
C, PHP, JavaScript und andere = == / ===
BASIC = = 1
Tcl set 2 ==

1 BASIC unterscheidet an Hand des Kontextes zwischen Zuweisung und Vergleich
2 In Tcl ist das Schema [Zuweisungsoperator] [Akzeptor] [Donator]

Arten von Akzeptoren[Bearbeiten]

Als Akzeptor können nicht nur einfache Variablen dienen. Es können auch Array-Elemente sein oder Eigenschaften von Objekten. In Sprachen wie C++ ist es sogar möglich, dass eine Funktion eine Referenz auf eine Variable zurückgibt, die dann in einer Zuweisung als Akzeptor dienen kann.

Beispiel: Akzeptoren aller Art
// Beispiele in JavaScript
var tab = [ 1, 2, 3 ];
var obj = { name: 'Müller' };

tab[2] = 4711;       // Akzeptor ist ein Array-Element
obj.name = 'Meier';  // Akzeptor ist ein Objekt-Property
// C++ Beispiel int someValue = 123; int& getStorage() { // Funktion getStorage liefert eine Referenz auf someValue return someValue; } getStorage() = 15; // überschreibt den Wert von someValue

Property-Setter[Bearbeiten]

Einige Programmiersprachen bieten spezielle Syntax an, mit der man eine Zuweisung an eine Objekteigenschaft auf einen Funktionsaufruf abbilden kann. Eine solche Funktion nennt man einen Property-Setter. Der Nutzer dieses Objekts bemerkt normalerweise nichts davon. Um den Anschein eines normalen Property zu wahren, wird üblicherweise auch noch ein getter hinzugefügt.

Beispiel: Property-Setter in Javascript
var myObject = {
   get name() { return this._name; }
   set name(neuerName) { this._name = neuerName.toUpperCase(); }
};

myObject.name = "Schmidt";  // Sieht aus wie eine Zuweisung, ist aber ein Funktionsaufruf
alert(myObject.name);       // Zeigt "SCHMIDT" an.
Normalerweise würde man die „interne“ Ablage des Namens vor dem Nutzer verbergen, z.B. mittels eines Moduls