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