Bölüm Seviyesi: Başlangıç

Bu bölümde işlenecek konular:

Tablo veri türü

table.insert()

table.remove()

Bu bölüm, tabloların ne olduğu konusunda temel bilgiler içermektedir. Bir sonraki bölümü daha iyi anlamak açısından bu bölümden not çıkarılması tavsiye edilir. Bununla beraber, öğrendiğiniz her fonksiyon ve bilgiyi kendiniz deneyin ve nasıl çalıştığını iyice kavrayın. Bunu yaparken kod görselleştirme tekniğini uygulamayı unutmayınız (Bölüm 3).

Tablolar

Tablolar, programlamanızda en çok kolaylık sağlayacak etkenlerden birisi olmakla birlikte; şimdiye kadar (2. bölümde) öğrendiğimiz 3 veri türüne başka birisini daha ekler. Tablo veya “table” ismini alan bu veri türü diğerlerine göre daha kompleks, ama aynı oranda kullanışlıdır.

“Table”, ingilizce tablo anlamına gelmekle birlikte masa anlamına gelir. Şimdi, bir masa hayal ediniz. Üstünde sıralanmış bir şekilde en sevdiğiniz üç cisim olsun. Bu cisimlere eleman ve değerlerine “value” (değer) ismi verilir. Cisimleri barındıran masa tablonun kendisidir.

Bir tablo aşağıdaki gibi yazılır. Değerler virgüller ile ayrılır:

Tablolar, farklı veri türleri barındırabilir:

Tablolar, başka tablolar da barındırabilir:

# Operatörü

# sembolünü bir tablo isminden önce yazmak, o tablonun eleman sayısını verir.

Yukarıdaki print, 3 sonucunu verir. Bu üç eleman sırasıyla: 

endeksi 1 olan number cinsinden bir eleman,

endeksi 2 olan string cinsinden bir eleman,

endeksi 3 olan table cinsinden bir elemandır.

Tablodaki Veriye Endeks İle Erişme

Herhangi bir tablo elemanına aşağıdaki gibi erişilebilir:

Burada, print komutu tablo isimli tablonun 2 endeksi elemanını, dolayısıyla “32” stringini panele yazdırır. Tablonun eleman sayısından daha büyük bir sayı ile veriye erişmeye çalışmak programın hata vermesi ile sonuçlanır.

Tablodaki Veriye Anahtar Vermek

Masanızın üstünde bulunan cisimlere isimler verdiğinizi düşünün.

Bu isme, programlamada “key” (anahtar) denir. Bir elemana anahtar atamak aşağıdaki gibi yapılır:

Tablonun isminden sonra nokta ve anahtarın ismi ile de anahtar ile bir veriye erişebilirsiniz:

Yukarıdaki kod, panele 32 yazar. 

Ekleme ve Silme Fonksiyonları

A) EKLEME

Lua’da bir tabloya veri ekleme fonksiyonu table.insert() fonksiyonudur. İki şekilde kullanılabilir:

a) table.insert(tablo, değer)

Daha yaygın kullanılan şekildir. Bu şekilde yazılan fonksiyon, istenilen bir tablonun sonuna bir değer ekler. Dolayısıyla tablonun eleman sayısı  1 artar.

Yukarıdaki kod sırasıyla şunları yapar:

3 elemanlı bir tablo oluşturur.

Tablonun son elemanını panele yazar (12)

tablonun sonuna bir eleman ekler.

Tablonun son elemanını panele yazar (224)

b) table.insert(tablo, endeks, değer)

Nadiren kullanılır. Bu şekilde yazılan fonksiyon ise istenilen bir endekse bir veri ekler. Bir sıranın arasına girildiğinde olduğu gibi, araya yerleştirilen eleman masada solunda bulunan elemanları bir sola kaydırır.

Aşağıdaki gibi kullanılabilir:

Bu kod sırasıyla şunları yapar:

3 elemanlı bir tablo oluşturur.

tablonun 2. elemanını panele yazar. (32)

tablonun yeni 2. elemanı olarak 12 değerini ekler.

tablonun 2. elemanını panele yazar. (12)

*Bu fonksiyon kullanılırken, endeks parametresi tablonun eleman sayısından büyük olamaz. Olması durumunda fonksiyon çalışmaz. 

B) SİLME

Lua’da bir tablodan veri silmek için table.remove() kullanılır. Yukarıda anlatılan table.insert()’ten çok farklı olmadığı için, iki şeklini kısaca inceleyelim:

a) table.remove(tablo, endeks)

Belirli bir endeksteki elemanı siler. Masada bulunan cisimler gibi, aradan biri çıkarılınca solunda olan elemanlar 1’e daha yakın olur ve endeksleri 1 azalır.

Yukarıda, ilk başta oluşturduğumuz tablonun 2. elemanı çıkarılmıştır. 3. eleman dolayısıyla yeni 2. eleman olmuştur. 

Örnek:

Bu kod aşağıdakileri sırasıyla yapar:

3 elemanlı bir tablo oluşturur.

tablonun 1 endeksli elemanını panele yazar.(43)

tablonun 1 endeksli elemanını tablodan çıkarır.

tablonun (yeni) 1 endeksli elemanını panele yazar (32)

*endeks parametresi 0’dan büyük olmalı ve tablonun eleman sayısından büyük olmamalıdır.

b) table.remove(tablo)

Sadece tablo parametresi olan, endeksi belirtilmeyen table.remove() fonksiyonunda endeks, tablonun eleman sayısı kabul edilir. Dolayısıyla tablonun son elemanı tablodan çıkarılır.

Bu kod sırasıyla şunları yapar:

3 elemanlı bir tablo oluşturur

tablonun son elemanını ekrana yazdırır (12)

tablonun son elemanını tablodan çıkarır.

tablonun (artık) son elemanını ekrana yazdırır (32)

Tablolar Nasıl kullanılır?

Bir sonraki bölümde, For döngüsü ile birlikte tablolara ve kullanım alanlarına daha derin bir bakış atacağız. Şimdilik tablo veri türünün ne olduğunu ve tablolar ile ilgili temel işlemleri ve fonksiyonları bilmeniz yeterli.

Özet ve Notlar:

*Tablolar birden çok veri taşır. Bu verilerin her birine değer (value) denir, bunlara bir endeks sayısı (index) karşılık gelir ve istek üzerine bir anahtar kelime (key) karşılık gelebilir.

*Herhangi bir veriye tablo[endeks] şeklinde, anahtarı varsa tablo.anahtar şeklinde erişilebilir. 

*# operatörü ile tablonun eleman sayısına ulaşılabilir.

*tablo[#tablo] ile bir tablonun en son elemanına ulaşılır. 

*table.insert(tablo, değer) ile bir tablonun sonuna değer eklenebilir.

*table.insert(tablo, endeks, değer) ile bir tablonun istenilen bir yerine bir değer eklenebilir.

*table.remove(tablo, endeks) ile bir tablonun istenilen bir yerinden bir değer silinebilir.

*table.remove(tablo) ile bir tablonun sonundan bir değer silinebilir.

2
like
2
love
0
haha
0
wow
0
sad
0
angry
2 Yorum konuları
0 Konu cevapları
0 İzleyiciler
 
En çok tepki verilen yorum
En yeni yorumlar
2 Yorum yazarları
mustafaÇalı Kuşu Son yorum yazarları
  Abone ol  
En Yeniler Eskiler Beğenilenler
Bildir
mustafa
Üye

Başarılar güzel ve başarılı bir seri olacak gibi.

Çalı Kuşu
Yazar

Oldukça faydalı bir seri olacağı, kanaatindeyim efendim, başarılar…