Concepts - Functions

Fonksiyon Nedir

Fonksiyon, function ve end anahtar kelimeleri kullanılarak tanımlanan, yeniden kullanılabilir bir kod bloğudur. Fonksiyonlar, ifadeleri bir araya getirerek kod organizasyonunu ve yeniden kullanılabilirliği teşvik eder.

Örnek

local function pow() print("2 * 2 işleminin sonucu " .. 2 * 2) end pow()

Çıktı

2 * 2 işleminin sonucu 4

Parametre

Lua'da parametreli fonksiyonlar, çağrıldıklarında fonksiyona değerler aktarmanıza olanak tanır ve fonksiyonun bu girdi değerlerine göre belirli eylemleri gerçekleştirmesini sağlar. Parametreler, fonksiyonda kullanılan gerçek değerler için yer tutucu görevi görür. Parametreler kullanılarak fonksiyonlar daha çok yönlü ve yeniden kullanılabilir hale gelir; farklı girdileri kabul edebilir ve sağlanan argümanlara göre farklı çıktılar üretebilirler.

Örnek

local function pow(num) print("Şu işlemin sonucu: " .. num .. " * " .. num ", sonuç: " .. num * num) end pow(2)

Çıktı

Şu işlemin sonucu: 2 * 2, sonuç: 4

self ve İki Nokta Üst Üste (:)

self, özel : sözdizimi kullanılarak tanımlanan fonksiyonlarda erişilebilen, kolaylık sağlayan özel bir değişkendir. İşte bir örnek:

local MyObject = {} function MyObject:MyCoolFunction( secondArg ) -- İsimdeki iki nokta üst üste (:) işaretine dikkat edin! print( self, secondArg ) end

Bir fonksiyon adında : ile tanımlandığında, yani bir nesnenin parçası olduğunda, fonksiyonun ilk argümanı self olur. Bu genellikle nesnenin kendisi anlamına gelir.

Bu, işlevsel olarak şununla aynıdır:

local MyObject = {} function MyObject.MyCoolFunction( self, secondArg ) print( self, secondArg ) end

veya bununla:

local MyObject = {} -- Bir değişkene fonksiyon ata MyObject.MyCoolFunction = function( self, secondArg ) print( self, secondArg ) end

İkinci örneğin nokta . sembolü kullandığına dikkat edin.

Aynı durum fonksiyonları çağırırken de geçerlidir:

-- Fonksiyon çağrısındaki iki nokta üst üste (:) işaretine dikkat edin MyObject:MyCoolFunction( "test" ) -- Nokta (.) işaretine dikkat edin MyObject.MyCoolFunction( MyObject, "test" )

İki fonksiyon çağrısı da aynıdır, ancak biri kolaylık sağlamak için daha kısadır.

Return

return ifadesi, bir fonksiyonun üretmesi veya çıktı vermesi gereken değeri/değerleri belirtmek için kullanılır. Bir fonksiyon return ifadesiyle karşılaştığında, anında çalışmayı durdurur ve belirtilen değeri/değerleri çağırana geri döndürür. Bu, fonksiyonların kendilerini çağıran koda sonuçlar sağlamasına olanak tanır ve fonksiyonun çıktısının programın diğer bölümlerinde kullanılmasını mümkün kılar.

Örnek

local function pow(num) return num * num end local number = pow(2) print("2 * 2 işleminin sonucu " .. number)

Çıktı

2 * 2 işleminin sonucu 4

return ifadesi, herhangi bir değer döndürmeden fonksiyonun yürütülmesini sonlandırarak fonksiyondan çıkmak için değersiz olarak da kullanılabilir. Bu, çağırana bir çıktı sağlamadan fonksiyonu belirli bir noktada durdurmak istediğinizde kullanışlı olabilir.

Örnek

local function SetHealth(ply, health) if not IsValid(ply) or not ply:Alive() then return end ply:SetHealth(health) print("Şu oyuncunun canı ayarlandı: " .. ply:Nick() .. ", yeni can: " .. health) end SetHealth(Entity(1), 100) Entity(1):Kill() SetHealth(Entity(1), 100)

Çıktı

Şu oyuncunun canı ayarlandı: User, yeni can: 100 -- Oyuncu ölü olduğu için çıktı yok

Bir Değişkene Atama

Lua'da, parantez kullanmadan fonksiyon adını kullanarak bir fonksiyonu bir değişkene atayabilirsiniz.

Örnek

local pow = function(num) return num * num end

Burada, pow değişkeni artık fonksiyonu tutar ve pow() kullanarak bu fonksiyonu çağırabilirsiniz. Bu teknik, değişkenlerde isimsiz (anonymous) fonksiyonlar oluşturmanıza ve saklamanıza olanak tanır, bu da Lua kodunuzda fonksiyonları başka yerlere aktarmayı kolaylaştırır. Artık değişkeni concommand.Add gibi diğer fonksiyonlara parametre olarak geçirebilirsiniz.

local pow = function(ply, cmd, args) local num = args[1] return num * num end concommand.Add("pow" , pow)

Tüm sunucular · GmodTR Launcher · Rehber · GMod Wiki · GmodTR nedir? · Sunucu ekle · Discord