Lua - Fonksiyonlar
Bir işlev, birlikte bir görevi yerine getiren bir grup deyimdir. Kodunuzu ayrı işlevlere bölebilirsiniz. Kodunuzu farklı işlevler arasında nasıl böleceğiniz size bağlıdır, ancak mantıksal olarak bölüm genellikle benzersizdir, bu nedenle her işlev belirli bir görevi yerine getirir.
Lua dili, programınızın çağırabileceği çok sayıda yerleşik yöntem sağlar. Örneğin yöntemprint() konsolda girdi olarak geçirilen bağımsız değişkeni yazdırmak için.
Bir işlev, bir yöntem veya bir alt rutin veya bir prosedür vb. Gibi çeşitli adlarla bilinir.
Bir Fonksiyonun Tanımlanması
Lua programlama dilinde bir yöntem tanımının genel biçimi aşağıdaki gibidir -
optional_function_scope function function_name( argument1, argument2, argument3........,
argumentn)
function_body
return result_params_comma_separated
end
Lua programlama dilinde bir yöntem tanımı, bir yöntem başlığı ve bir yöntem gövdesinden oluşur . İşte bir yöntemin tüm bölümleri -
Optional Function Scope- İşlevin kapsamını sınırlamak veya kapsam bölümünü yok saymak için yerel anahtar sözcüğünü kullanabilirsiniz , bu da onu genel bir işlev haline getirir.
Function Name- Bu, işlevin gerçek adıdır. İşlev adı ve parametre listesi birlikte işlev imzasını oluşturur.
Arguments- Tartışma, yer tutucu gibidir. Bir işlev çağrıldığında, bağımsız değişkene bir değer iletirsiniz. Bu değer, gerçek parametre veya bağımsız değişken olarak adlandırılır. Parametre listesi, bir yöntemin argümanlarının türü, sırası ve sayısını ifade eder. Bağımsız değişkenler isteğe bağlıdır; yani, bir yöntem hiçbir argüman içermeyebilir.
Function Body - Yöntem gövdesi, yöntemin ne yaptığını tanımlayan bir dizi deyim içerir.
Return - Lua'da virgülle ayrılmış dönüş değerleri ile return anahtar sözcüğünü takip ederek birden çok değer döndürmek mümkündür.
Misal
Aşağıda, adı verilen bir işlevin kaynak kodu verilmiştir max(). Bu fonksiyon num1 ve num2 iki parametre alır ve ikisi arasındaki maksimum değeri döndürür -
--[[ function returning the max between two numbers --]]
function max(num1, num2)
if (num1 > num2) then
result = num1;
else
result = num2;
end
return result;
end
İşlev Bağımsız Değişkenleri
Bir işlev bağımsız değişkenler kullanacaksa, bağımsız değişkenlerin değerlerini kabul eden değişkenleri bildirmelidir. Bu değişkenlereformal parameters işlevin.
Biçimsel parametreler, işlevin içindeki diğer yerel değişkenler gibi davranır ve işleve girişte oluşturulur ve çıkıldığında yok edilir.
Bir Fonksiyon Çağırma
Bir Lua işlevi oluştururken, işlevin ne yapması gerektiğine dair bir tanım verirsiniz. Bir yöntemi kullanmak için, tanımlanan görevi gerçekleştirmek için o işlevi çağırmanız gerekecektir.
Bir program bir işlevi çağırdığında, program kontrolü çağrılan işleve aktarılır. Çağrılan bir işlev tanımlanmış görevi yerine getirir ve return ifadesi yürütüldüğünde veya işlevinin sonuna ulaşıldığında, program kontrolünü ana programa geri döndürür.
Bir yöntemi çağırmak için, gerekli parametreleri yöntem adıyla birlikte iletmeniz yeterlidir ve yöntem bir değer döndürürse, döndürülen değeri saklayabilirsiniz. Örneğin -
function max(num1, num2)
if (num1 > num2) then
result = num1;
else
result = num2;
end
return result;
end
-- calling a function
print("The maximum of the two numbers is ",max(10,4))
print("The maximum of the two numbers is ",max(5,6))
Yukarıdaki kodu çalıştırdığımızda aşağıdaki çıktıyı alacağız.
The maximum of the two numbers is 10
The maximum of the two numbers is 6
İşlevleri Atama ve Geçirme
Lua'da, işlevi değişkenlere atayabilir ve bunları başka bir işlevin parametreleri olarak da geçirebiliriz. Lua'da bir işlevi parametre olarak atamak ve iletmek için basit bir örnek.
myprint = function(param)
print("This is my print function - ##",param,"##")
end
function add(num1,num2,functionPrint)
result = num1 + num2
functionPrint(result)
end
myprint(10)
add(2,5,myprint)
Yukarıdaki kodu çalıştırdığımızda aşağıdaki çıktıyı alacağız.
This is my print function - ## 10 ##
This is my print function - ## 7 ##
Değişken Bağımsız Değişkenli Fonksiyon
Lua'da parametre olarak '...' kullanarak değişken argümanlar içeren fonksiyonlar oluşturmak mümkündür. Fonksiyonun ortalamayı döndüreceği ve değişken argümanlar alabileceği bir örnek görerek bunu kavrayabiliriz.
function average(...)
result = 0
local arg = {...}
for i,v in ipairs(arg) do
result = result + v
end
return result/#arg
end
print("The average is",average(10,5,3,4,5,6))
Yukarıdaki kodu çalıştırdığımızda aşağıdaki çıktıyı alacağız.
The average is 5.5