Fonksiyonlar, bir betikte birçok kez kullanılabilen talimat setleridir. Çoğu programlama dilinde yerleşik olarak bulunmuş print() ve task.wait() gibi önceden yapılmış fonksiyonlar (aynı zamanda metotlar olarak da adlandırılır) vardır. Kodlayıcılar, birden fazla kez kullanmak istedikleri, ancak tekrar tekrar yazmak istemedikleri kodlar için kendi özel fonksiyonlarını da oluşturabilirler. Luau'da bu, aşağıdaki gibi yazılarak yapılır: local function fonksiyonAdı()
Fonksiyonlar, bir tarif gibi düşünülebilir. Her ikisi de belirli talimatların listeleridir. Örneğin, bir robota spagetti yapmayı öğretmek için bir fonksiyon kullanabilirsiniz. Öncelikle, yemeği hazırlamak için adımları listeleyen bir local function oluşturun. Ardından, akşam yemeği istediğinizde sadece "Robot, makeSpaghetti() çalıştır" diyorsunuz.
Akşam yemeği yapma adımları aşağıdaki gibi görünebilir:
- Su kaynat
- Makarnayı ekle
- 15 dakika pişir
- Sosu ekle
- Bir tabağa servis et
Kod versiyonunun ise aşağıdakine benzer görünmesi gerekebilir:
local function makeDinner()
-- Talimatlar listesi
end
-- Koda çalıştırmasını söyle
makeDinner()
Bir fonksiyon oluşturma
Pratik yapmak için, ilk fonksiyonunuz Çıktı penceresinde en sevdiğiniz yiyeceği yazdıracaktır. Öncelikle kullanacağınız betiği ayarlayın; eğer nasıl yapacağınızı hatırlamıyorsanız, işte bir hatırlatma:
- ServerScriptService içinde yeni bir betik oluşturun.
- Betiği FunctionsPractice olarak yeniden adlandırın.
- "Hello World" ifadesini silin.
- Üstte bir yorum ekleyin. Örneğin: -- En sevdiğiniz yiyeceği yazdırır
Sonra, fonksiyonu oluşturup adlandırıyorsunuz. Tüm fonksiyonların, amacını hatırlamanıza yardımcı olacak adlara sahip olması gerekir. Fonksiyon adları, ilk harfi küçük ve sonraki kelimeleri büyük olacak şekilde camelCase formatında yazılır.
Örnekler: addPoints(), restartGame(), rainFlamingLlamas()
- local function printFood(), yazın ve ardından klavyenizde Enter tuşuna basın. Fonksiyonunuz aşağıdaki gibi otomatik olarak tamamlanmalıdır:
local function printFood()
end
Fonksiyonlara kod ekleme
Fonksiyonunuz için tüm kod, local function printFood() ile end arasına yazılmalıdır. Bu iki nokta arasında olmayan herhangi bir kod, fonksiyon çalıştığında çalışmaz.
local function printFood()
-- Fonksiyon çağrıldığında buradaki kod çalışır
end
-- Buradaki kod çalışmayacak
Fonksiyon içinde bulunan veya fonksiyon tarafından kullanılabilecek bilgiler, kapsama (scope) içindedir.
- local function printFood() ile end arasında, en sevdiğiniz yiyeceği belirtmek için print() kullanın.
local function printFood()
print("Köri!")
end
Fonksiyonu çalıştırmayı söyleme
Fonksiyon çalışmadan önce yapmamız gereken bir şey daha var; bu da ona çalışmasını söylemek, ayrıca fonksiyonu çağırmak olarak da bilinir. Fonksiyonlar, çağrılmadıkça çalışmaz. Bir fonksiyonu çağırmak için, fonksiyonun adını () ile birlikte yazın.
end altında, printFood() yazın.
local function printFood()print("Köri!")endprintFood()Kodu test edin. En sevdiğiniz yiyecek Çıktı penceresinde görünmelidir.
Sorun giderme ipuçları
Kodunuz çalışmıyorsa, aşağıdaki gibi hataları kontrol edin:
- print("Yiyeceğinizi Buraya Yazın") ifadesinin local function printFood() ile end arasında olduğunu kontrol edin.
- Yiyeceğinizin bir dize olduğunu kontrol edin, "her iki tarafında" tırnak işareti bulunmalıdır.
- Fonksiyonun oluşturulduktan sonra çağrıldığından emin olun. printFood() ifadesi end altına yazılmalıdır.