Referenz - Zuweisung
Syntax A: Variable = Wert
Syntax B: Variable => Wert
Typ: Operator
Kategorie: Operatoren
Die Zuweisung von Werten wird in FreeBASIC üblicherweise mit '=' bewerkstelligt, es kann allerdings auch '=>' verwendet werden.
Beispiel 1:
Dim As Integer foo1 = 5
Dim As Integer foo2 => 7
Dim As Integer bar1(0 To ...) = {0, 1, 2, 3}
Dim As Integer bar2(0 To ...) => {4, 5, 6, 7}
In den meisten Fällen sind beide Zuweisungsoperatoren gleichbedeutend. Da '=' allerdings auch als Vergleichsoperator verwendet wird, gilt '=>' als expliziter Zuweisungsoperator.
Dies ist vor allem bei Funktionen mit einer Rückgabe 'by reference' wichtig, da die Zuweisung an eine solche Funktion durch den Compiler auch als Vergleich interpretiert werden könnte.
Beispiel 2:
Function f(ByRef s As String) ByRef As String
Return s
End Function
Dim As String s = "foo"
Print f(s)
' f(s) = "bar" ' <--- Achtung, Fehler!
Print f(s)
f(s) => "foobar"
Print f(s)
Sleep
Die auskommentierte Stelle wird in diesem Fall als 'f((s) = "bar")' interpretiert. Dabei handelt es sich also um einen Vergleich, der die Variable 's' und den String "bar" miteinander vergleicht und einen numerischen Wahrheitswert zurückliefert, der an die Funktion 'f()' übergeben wird. Da die Funktion allerdings einen String als Übergabeparameter erwartet, führt der Aufruf zwangsläufig zu einem Fehler.
Für diesen speziellen Fall muss '=>' verwendet werden, um dem Compiler zu signalisieren, dass eine explizite Zuweisung erwünscht ist.
Zusätzliche Informationen und Funktionen | ||||
---|---|---|---|---|
|