Kavramlar - Değişkenler

Değişkenler, nedir bunlar?

Değişkenler, scriptinizin bilgi tutmasını sağlar. Bir değişken kullanarak, bir veri parçasını bir kez saklayabilir ve daha sonra istediğiniz zaman ona başvurabilirsiniz. Lua, bir değişkeni kesin olarak belirli bir türde bildirmenizi gerektirmez, bu nedenle hiçbir şey (nil) de dahil olmak üzere kesinlikle her şeyi tutabilirler.

Özet: Scriptleri kaydetme, çalıştırma ve print çağırma

Şu andan itibaren, not defterini açma, kaydetme ve Garry's Mod'da bir script yükleme hakkında açıklamaya ihtiyacınız olmadığı varsayılmaktadır. Unutursanız ilk sayfaya başvurun.

Editörünüzü açın. Değişkenler içeren yeni bir script yapacağız!

Son eğitimde, konsola basit bir string (metin dizisi) yazdırmayı öğrenmiştik:

print( "Hello World!" )

Bu oldukça basitti: scriptimiz her çalıştığında, konsolda "Hello World!" yazıyordu:

print() bir fonksiyondur. Fonksiyon, çağırdığınızda bir şey yapan bir komuttur. Birçok fonksiyon, tam olarak ne yapacağını değiştirmek için fonksiyona verdiğiniz veriler olan argümanlar alabilir. Bu durumda, print() bir argüman alır, bu bir string'dir (bir dizi harf, sayı, boşluk vb.) ve print() çağrıldığında, bu string'i konsola koyar.

Kodu parça parça inceleyelim ki anlayabilelim.

print( "Hello World!" )

print, çağırdığımız fonksiyonun adıdır. ( ve ) (bu sembollere parantez denir) print'in konsola yazmasını istediğiniz metni koyduğunuz yerdir.

"Hello World!" yazdırmayı seçtiğimiz metindir; bu bir string'dir - "" (tırnak işaretleri) dikkat edin. Tırnak işaretleri, Lua'ya aralarındaki her şeyin bir değişken adı değil, bir string olduğunu söyler. Şunu yapmak:

print( Hello World! )

çalışmayacaktır, çünkü tırnak işaretlerini unuttuk! Eğer bunu yaparsak, Lua Hello ve World!'ün bir string sabiti yerine iki değişkenin adı olduğunu düşünecektir. Unutmayın: Lua'ya verdiğimiz bilginin bir tür metin olduğunu bildirmek istediğimiz her zaman, metni bir string olarak temsil etmek için tırnak işaretleri arasına koyarız.

Vay be! Hala benimle misiniz? Şimdiye kadar hatırlamanız gereken kelimeler şunlar:

  • Değişken (bir değer tutar)
  • Fonksiyon (bir şey yapar, argüman alabilir)
  • Argümanlar, diğer adıyla Parametreler (fonksiyonlar bunları alır ve onlarla bir şeyler yapar)
  • print (konsola metin yazan bir fonksiyon)
  • String (metin verisi tutan bir değişken türü)
  • Parantezler
  • Tırnak İşaretleri

Artık fonksiyonların nasıl çalıştığını, string'lerin nasıl temsil edildiğini ve fonksiyonların nasıl çağrılacağını bildiğimize göre, değişkenleri nasıl tanımlayacağımıza veya bildireceğimize ve onlara değer atayacağımıza geçelim.

Değişkenleri tanımlama

Bir değişken şu şekilde oluşturulabilir:

myName = "Jeff"

Değişkenin adı (myName) soldadır. Eşittir işareti, bu değişkenin değerini sağdakine ayarlamak istediğinizi söyler. Hatırlarsanız, "Jeff" bir string'dir, çünkü etrafında tırnak işaretleri vardır. myName bir değişkenin adıdır, çünkü etrafında tırnak işaretleri yoktur! Anlamaya başladınız mı?

Şimdi muhtemelen, bunun ne anlamı var diye düşünüyorsunuzdur? İşte bunu görmek için buradayız.

Ama önce, metin yerine bir değişkenle print()'in nasıl kullanılacağını görelim. Şimdiye kadar bildiğiniz gibi, mesajı ilk kullandığımız yol şöyleydi.

print( "Hello World!" )

Ne yazdırılacağını söylemek için print() içinde bir string kullanıyoruz. Ama bir değişken kullanmak istiyorsak, şunu yaparız:

myName = "Jeff" print( myName )

Bu her çalıştığında, print() konsola Jeff yazar, çünkü myName, Jeff'tir. Heh, gördünüz mü?

Değişkenleri, onları oluşturduğunuz şekilde değiştirebilirsiniz. Şöyle ki:

myName = "Jeff" print( myName ) myName = "Josh" print( myName )

Yukarıdaki örnek önce Jeff, sonra Josh yazar.

Kafanız mı karıştı? Cebiri hatırlayın

Umarım bu noktada kafanız çok karışmamıştır. Neyse ki, daha önce matematik, özellikle de cebir yaptıysanız, değişkenleri, fonksiyonları ve hatta argümanları zaten görmüşsünüzdür! Örneğin, bir cebir probleminin şöyle dediği zamanı hatırlayın

x = 4

Bu, değişkenin adı olan x'in, 4 değerini tuttuğu anlamına gelir, bu da "4, x'e atanmıştır" veya "x, 4'tür" şeklinde de söylenebilir.

Cebirde, f adında bir fonksiyonun şöyle tanımlandığını da görmüş olabiliriz

f(x) = 2x + 1

Eğer x değişkenimizin değerini f(x) fonksiyonuna "yerine koysaydık" veya "geçseydik", fonksiyon bunu 9'u hesaplamak için kullanırdı, çünkü 2 çarpı 4 yapıp 1 eklerdi. Bu durumda, f fonksiyondur, x argümandır ve fonksiyonun içinde hesaplanan her şey (2x + 1) tamamen ona geçilen x argümanının değerine bağlıdır. Örneğin, argüman olarak 3'ü geçseydik, fonksiyon 7'yi hesaplardı.

Bunun nasıl çalıştığını bildiğimize göre, şimdiye kadar öğrendiklerimizi kullanarak Lua'da yazmayı deneyebiliriz. Henüz kendi fonksiyonlarımızı nasıl tanımlayacağımızı bilmediğimiz için, koda sadece print fonksiyonunu kullanarak 2x+1'in sonucunu yazdırmasını söyleyeceğiz:

x = 4 print( 2 * x + 1 ) -- 9 yazdırır x = 3 print( 2 * x + 1 ) -- 7 yazdırır

Umarım bu, değişkenleri, fonksiyonları ve argümanları biraz daha iyi anlamanıza yardımcı olur.

Yerel Değişkenler

Yerel değişkenler, yalnızca tanımlandıkları kod bloğunda (tanımlandıkları "kapsam" olarak da bilinir) ve sonraki tüm alt kod bloklarında kullanılabilen değişkenlerdir. Şu şekilde tanımlanırlar:

local myName = "Jeff" print( myName )

Çoğu durumda, diğer scriptlerin onları geçersiz kılmasını önlemek veya scriptinizin başka bir scriptten bir şeyi geçersiz kılmamasını sağlamak için yerel değişkenler kullanmak isteyeceksiniz.

Bu örnek, global bir değişken ile yerel bir değişken arasındaki farkı, özellikle de kapsamın nasıl çalıştığını gösterir:

-- 2 yerel değişken: local myName = "Jeff" local myAge = 18 -- 2 global değişken: myPetName = "Peter" filename = "test.lua" print( myName, myPetName, myLastName, myAge, filename ) -- (Evet, print aslında 1'den fazla argüman alabilir) if ( true ) then -- şimdi farklı bir kod bloğundayız: -- bu blokta atadığımız herhangi bir yerel değişken sadece -- "end"e ulaşana kadar bu bloğun içinde mevcut olacaktır: local myName = "George" local myLastName = "Jackson" local filename = "nope.jpg" myPetName = "Bob" myAge = 20 print( myName, myPetName, myLastName, myAge, filename ) end -- myPetName ve myAge yukarıdaki blokta değiştirildi! -- Diğerleri bloğa yerel oldukları için değiştirilmedi. print( myName, myPetName, myLastName, myAge, filename )

Bu kodun çıktısı şu şekilde olacaktır:

Jeff Peter nil 18 test.lua George Bob Jackson 20 nope.jpg Jeff Bob nil 20 test.lua

Birleştirme (Concatenation)

İki tür veriyi bir string oluşturmak için birleştirmeye birleştirme (concatenation) denir. Birleştirmek için sadece .. kullanmanız yeterlidir. İşte bir örnek:

print( "Ayrı " .. "olmayı sevmiyorum. ")

"I don't like " .. "being apart." ifadesi "I don't like being apart." haline gelir.

Şimdi string'ler mutlu, çünkü tek bir string olarak birlikteler.

Aynı şekilde, bir string sabitini ve bir değişkeni birleştirebilirsiniz:

local myName = "Jeff" print( "Atlantik'e hoş geldin, " .. myName )

Bu, "Atlantik'e hoş geldin, Jeff" yazdırır çünkü myName değişkeni "Jeff" değerini tutmaktadır. Aslında yaptığı şey şudur: "Atlantik'e hoş geldin, " .. "Jeff"

.. operatörünü istediğiniz kadar kullanabilirsiniz. Aşağıya bakın:

local myName = "Jeff" print( "Selam, " .. myName .. ". Adının " .. myName .. " olduğunu duydum! Güzel meme." ) -- Bu şunu yazdırır: Selam, Jeff. Adının Jeff olduğunu duydum! Güzel meme.

Hatta sayılar gibi diğer türdeki değerleri de bir string ile birleştirebiliriz:

local myAge = 69 print( "Ben " .. myAge .. " yaşındayım." ) -- yazdırır: Ben 69 yaşındayım.

Yeni Satırlar (Newlines)

Burada ele alacağımız son şey, string'lerin içinde yeni satırların (newlines) nasıl kullanılacağıdır. Yeni satırlar, yeni satırın başlamasını istediğiniz yerde bir string içinde \n yazarak oluşturulur. Yeni bir satır eklemek için string'in herhangi bir yerinde yeni satırları kullanabilirsiniz (aşağıya bakın):

local myName = "Jeff" print( "Merhaba, " .. myName .. "!\nBugün nasılsın?\nHarika hissediyorum." )

Bu, konsola şunu yazdırır:

Merhaba, Jeff! Bugün nasılsın? Harika hissediyorum.

Çok satırlı string'ler, tırnak işaretleri yerine çift köşeli parantez ([[ ]]) kullanılarak da tanımlanabilir. Bu, string içinde \n kullanmadan yeni satırlar oluşturmanıza olanak tanır.

Örnek:

print( [[Merhaba, Jeff! Bugün nasılsın? Harika hissediyorum.]] )

Çıktısı:

Merhaba, Jeff! Bugün nasılsın? Harika hissediyorum.

Sırada ne var?

Sırada koşullar hakkında bilgi edineceğiz.

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