Skript-Fu-Einstieg: Variablen
Aus GIMPForum
| << Grundlagen | ^ Inhaltsverzeichnis ^ | Listen >> |
Variablen
Eine Variable ist ein Element, welches keinen festen, also variablen (veränderbaren) Wert hat. Beim Programmieren werden Variablen benutzt um Werte in ihnen zu speichern, die nicht jedes mal exakt dieselben sind.
Du kannst dir das als Kiste vorstellen. In diese Kiste kannst du nun jeden beliebigen Inhalt packen, egal ob es eine Zahl, ein Text oder sonst etwas ist. Jedes mal wenn du nun mit dem Inhalt arbeiten willst, kannst du einfach den Namen der Variable aufrufen.Was hat das für einen Vorteil? Ganz einfach, der Rückgabewert einer Funktion, beispielsweise das Ergebnis einer Rechnung wird nirgends gespeichert. Wenn du aber mit dem Ergebnis weiter rechnen willst, musst du entweder mit der ganzen Rechnung weiterarbeiten oder du speicherst das Resultat in eine Variable. Die zweite Methode ist viel einfacher und übersichtlicher. Zudem muss im Falle eines Fehlers nur eine Fehlerquelle beseitigt werden.
Es gibt drei Möglichkeiten:
- (define variable expressie)
- (let ((var1 expr1)...) expressie ...)
- (let* ((var1 expr1)...) expressie ...)
1. Deklariert variable global mit dem Wert von expressie.
in 2. und 3. werden variablen lokal deklariert hier var1 mit dem Wert von expr1
Die ... geben an, dass noch mehr oder keine Ausdrücke folgen können, Deklarationen von Variablen oder nach den Deklarationen weiter 'Ausdrücke', die die deklarierten Variablen (mit Werten!) benutzen oder auch mit neuen Werten überschreiben.
Bei dem let mit * stehen die Variablen mit ihren Werten für die danach deklarierten Variablen (falls überhaupt vorhanden) sofort zur Verfügung.
Variablen in Skript-Fu Funktionen werden meistens folgendermaßen erstellt:
(let* ((Variablendeklaration)) ...weitere Funktionen... )
Nehmen wir diese Funktion mal auseinander.
Der 2. Punkt aus dem ersten Kapitel besagt, dass das erste Element in einer Funktion der Funktionsname sei.
Diese Funktion heißt also let*.
"Variablendeklaration" in Klammern bedeutet, dass alle Variablen zuerst in einer Klammer erstellt werden müssen.
Variablendeklaration: Eine Variable deklarieren bedeutet sie zu erstellen.
Der Rest "weitere Funktionen" ist der Teil in let*, indem wir mit den Variablen arbeiten können. Noch nicht ganz klar? Dann machen wir doch ein praktisches Beispiel. Gehe in die Skript-Fu-Konsole und tippe mal folgenden Text ein (der Code muss in der Konsole auf einer Zeile stehen):
(let*
(
(X 49)
(Y 21)
)
(+ X Y)
)
Zuerst sagst du, welche Funktion aufgerufen werden soll. In diesem Fall let*.
Danach hast du in Klammern die Variablen erzeugt welche den Namen X und Y haben.
Gleichzeitig hast du ihnen auch schon einen Wert zugewiesen, nämlich 49 für X und 21 für Y.
Bis und mit Version 2.4 können auch leere Variablen erstellt werden (beispielsweise nur (Y)). Ab GIMP 2.6 wird ein Anfangswert zwingend benötigt, ansonsten kann das Skript nicht ausgeführt werden und du erhältst eine Fehlermeldung.
Zum Schluss hast du die beiden Variablen in eine Funktion eingebunden und als Ergebnis 70 erhalten.
Achtung: Bei der Vergabe von Variablennamen ist Vorsicht geboten. Groß- Kleinschreibung wird berücksichtigt, Umlaute werden nicht erkannt und Sonderzeichen solltest du auch vermeiden. Ansonsten kannst du Variablen nach belieben benennen. Beispielsweise kannst du einer Variable ein Präfix voranstellen um dein Skript übersichtlicher zu halten (z.B. varBackgroundlayer, varForegroundcolor).
Noch eine kurze Erklärung zu let*: let* ist einfach die Funktion, welche es uns erlaubt Variablen zu erzeugen. Diese Variablen existieren aber nur innerhalb der äußersten let*-Klammern. Das heißt, alles was du mit diesen Variablen noch tun möchtest, muss im dritten Teil von let* sein (in der Grafik: weitere Funktionen).
Zuerst kommt die Funktion, die aufgerufen werden soll, also (set!...). Als nächstes steht die Variable, welche einen neuen Wert erhalten soll (X) und zum Schluss kommt noch der neue Wert (74.3).
(set! X 74.3)
Das erste Beispiel könnte dann z.B. so erweitert werden:
(let*
(
(X 49)
(Y 21)
(Summe 0)
)
(set! Summe
(+ X Y)
)
)
Hier wird zusätzlich noch die Variable Summe mit dem Anfangswert 0 erzeugt und später die Summe von X + Y zugewiesen. Würde man nun den Wert von Summe überprüfen, würde also 70 rauskommen.
Anmerkung: Einer Variable kann auch Text zugewiesen werden, dieser muss einfach in Gänsefüßchen stehen (X "Text"). Um genau zu sein, man kann einer Variablen auch noch andere Dinge zuweisen, vectoren, Character, Listen, usw..
Zum Üben kannst du hier einfach die Übungen aus Kapitel 1 nehmen und anstatt direkt mit den Zahlen zu rechnen, weist du sie einer Variabel zu und rechnest dann mit Variablen.
| << Grundlagen | ^ Inhaltsverzeichnis ^ | Listen >> |
