Swift 5.3 Enumeration Veri Nedir ?

Enumeration

Diğer dillerde aşina olduğumuz ENUM veri yapsını göreceğiz.ENUM aslında verileri bir numaralı veya sıralı bir sistemde bie key oluşturarak ulaşmamız yarar.Bir ENUM değişkeni hem key hem value olabilir.

ENUM veri tipi genelde sabit olması gereken tanımlamlar için kullanılır.Örneğin haftanın günleri , gezegen isimleri , boyutlar vs ..

Şimdi Pizza boyutu örneğimize bakalım.Pizza söylediğimiz zaman içinde ne olursa olsun her koşulda sabit olan bir ifade vardır o da Pizza boyutumdur.Boş pizza söylesek bile mutlaka uyut belirtmek zorundayız ve bu boyut nerede olursak olalım hep Sabit ifadelerle tanımlanır.Yarım pizza Şimdi Pizza boyutu örneğimize bakalım.Pizza söylediğimiz zaman içinde ne olursa olsun her koşulda sabit olan bir ifade vardır o da Pizza boyutumdur.Boş pizza söylesek bile mutlaka uyut belirtmek zorundayız ve bu boyut nerede olursak olalım hep Sabit ifadelerle tanımlanır.Yarım pizza boyutu diye bir boyu yoktur temel de büyük orta ve küçük boy olarak vardır.İşte ENUM örneği için biçilmez bir kaftandır.

enum ifadesi ile bir enum yapısı yaptım.Case ifadesi ile değerlerimi girdim hepsi bu kadar.Şimdi mypizza isimli değişkenime ENUM türünde (orta) bir deger atadım. Ardından seçimi değiştirmek istedim ve büyük isimli değerimi atadım.Burada .büyük şekilde ifade etmemin sebebi kodun okunaklıgını arttırmak içindi yoksa PizzaBoyutum.büyük şeklinde yapmamla aynı şey.

Şimdi ise ENUM türü ile switch-case yapsını birlikte kullanalım.

Gördüğümüz gibi switch case yapısı ile hangi seçim yapıldıysa o boyutu ekrana bastık.

Iterating over Enumeration Cases (ENUM İÇİNDE Yenileme)

Bazı numaralandırmalar için, bu numaralandırma vakalarının tümünün bir koleksiyonuna sahip olmak yararlıdır. Bunu numaralandırma adından sonra yazarak etkinleştirirsiniz . Swift , numaralandırma türünün bir özelliği olarak tüm vakaların bir koleksiyonunu ortaya koyar . 

Örnekte CaseIterable ifadesi ile bir kolleksiyon yaptık.Ardından adet sayisini ekrana bastık.

İlişkili Değerler (Associated Values)

İlişkili değerleri ENUM veri saklama yönteminde kullabilirim.Örneğin elimizde 2 farklı barkod numarası olsun.

QR kod String türünde bir değer ile iş yapar .UPC barkod ise İnt veri tipinde degerler saklar.Şimdi bir tanımlama yapalım.

Şimdi bu örneği adım adım inceleyelim.

  • Öncelikle ENUM tipinde verilerimi tanımladım.2 Adet barkod türü olduğu için 2 adet case içinde barkodlar için gerekli veri tiplerimide tanımladım.
  • urunbarkodu girdim ve bnun sanki bir yerden okutulmuş bir barkod gibi görebilirsin.
  • Switch case ile gelen verinin QR kod mu olduğunu yoksa UPC barkod mu oldugun farklı yöntemlerler de anlayabilirdik ama biz gelen verinin tipine göre işlem yapıyoruz.
  • Mesela QR barkod seçili ise yani o tarz bir veri geldiyse gelen veriyi içeride bulunan sabit değişkenime yani productCode isimli let değişkenime atar ve Case içinde ki işlemi yapar.

Enum with Raw Values (Ham Değerler İle ENUM)

Ham değerler, dizeler, karakterler veya tam sayı veya kayan nokta sayı türlerinden herhangi biri olabilir. Her ham değer, numaralandırma beyanında benzersiz olmalıdır. Ham değerler için tamsayılar kullanıldığında, bazı numaralandırma üyeleri için değer belirtilmezse otomatik olarak artar.

Bu örnekte pazartesi value degerime 1 atadım.Ardından Bud eğer diğer değişkenlerinde bir int verisi oldu ve bu değer aksi belirtilmezse 1 arttı.Daha sonra sabit değişken oluşturup günler enum tipinde salı gününe ait rawvalue degeri okuyup ekrana basmış olduk.

Leave a Reply

*