Lua Functions Roblox?
Kann mir einer sagen was genau Functions bringen außer das man halt den Namen der Funktion festlegen kann und dann immer schreiben kann (im gleichen Script) und was genau macht Return
2 Antworten
Kann mir einer sagen was genau Functions bringen (...)
Mittels Funktionen kannst du:
1) Deinen Code in einzelne Sektionen unterteilen und somit einfacher/besser lesbar strukturieren. Dabei erledigt eine Funktion bestenfalls nur eine spezifische Aufgabe.
Wenn du später in deinem Programm etwas an dem Verhalten der implementierten Funktionalität ändern möchtest, wird es dir leichter fallen, diese Stelle wiederzufinden.
Mit dem Funktionsnamen kannst du zudem Code-Blöcke sprachlich zusammenfassen (Bsp.: Ein Code-Block, der einen Spielcharakter laufen lässt, könnte in eine Funktion run). Beim Lesen des Codes ist es dann einfacher, durch den Funktionsnamen bei ihrem Aufruf zu erfassen, was dort gemacht wird. Man muss nicht zwingend den Code lesen, der in der Funktion steht, um es zu verstehen.
2) Code-Wiederholungen vermeiden, denn du brauchst nun ja nur noch die Funktion aufrufen.
(...) was genau macht Return (...)
Wenn eine Funktion etwas berechnet, kann sie nach Abschluss ein Ergebnis zurückgeben.
Beispiel:
function get_sum(summand1, summand2)
local result = summand1 + summand2
return result
end
sum1 = get_sum(2, 3)
print(sum1) -- 5
sum2 = get_sum(4, 9)
print(sum2) -- 13
Die Ergebnisse der jeweiligen Aufrufe werden in diesem Fall in Variablen gespeichert und dann weiterverarbeitet (auf der Konsole ausgegeben).
Bei Connect handelt es sich um eine Funktion, die Event-Objekten (wie Touched) offensteht. Sie bindet eine andere Funktion an das Event.
Nehmen wir einmal dieses Beispiel:
part.Touched:Connect(function(otherPart)
print("Intersects with ", otherPart.Name)
end)
Connect bindet die Funktion, die ihr als Parameter übergeben wird, an das Touched-Event bzw. registriert diese Funktion als Event-Handler. Wenn das Event ausgelöst wird (also das Spielobjekt mit einem anderen kollidiert), werden alle registrierten Event-Handler aufgerufen. In dem Zuge wird ihnen auch der Parameter otherPart übergeben, der vom Touched-Event zuvor ermittelt wird.
Je Event ist es unterschiedlich, welche Parameter registrierten Funktionen übergeben werden. Ein PlayerAdded-Event beispielsweise übergibt das Spielerobjekt, welches gerade hinzugefügt wurde.
Im obigen Beispielcode wird eine anonyme Funktion registriert (sie hat keinen Namen). Du kannst aber auch benannte Funktionen registrieren:
function do_something_on_touch(otherPart)
print("Intersects with ", otherPart.Name)
end
part.Touched:Connect(do_something_on_touch)
Das sind aber sehr grundlegende Fragen, ich nehme an, du hast ein sehr sehr kleines Skript für deinen Gaming Anwendungsfall, vermutlich brauchst du es gar nicht, wenn du dann aber mehr Mods schreibst, und dir einfällt ah das brauche ich jetzt erneut, das hab ich doch schonmal programmiert 🤔 ja genau dann kannst du die Funktion wiederverwenden. Naja und eine Funktion sollte einen Wert zurückgeben das macht return, wenn deine Funktionalität nur etwas tut und nichts zurück gibt ist das eine sog. Prozedur und braucht keinen return Wert
Danke. Weißt du Was Connect(function() oder so bringt .