Swift'te Değişkenler
Değişkenler:
Swift'te değişkenlere değinmeden önce değişkenin ne olduğunu anlamamız gerekir.
Değişken Nedir ?
Değişkenler, girdiğimiz değerleri alan veya programın çalışmasıyla bazı değerlerin atandığı veri depolamaya yarayan bir kavramdır. Değişken tanımlama ise girilecek ve ya programın getireceği verinin ne olduğuna bağlı olarak değişken türünün belirlenmesidir. Değişkenleri bir nevi bir kovaya benzetebiliriz. Kovanın içine koyduğumuz nesneler de değişkenin tipini gösterir. Örneğin girilecek verinin bir tamsayı olması halinde o değişkeni de tamsayı olarak tanımlamak gerekir. Değişik türler için bu işlem farklı farklı tekrarlanmalıdır.
Değişkeni tanımlarken
Değişken tanımlamaları şu şekilde yapılmaktadır.
(Değişkenin Türü) ( Değişen Adı) = (Değeri)
Eşittir in sağındaki değer Değişkende depolanır.
Değişkeni tanımlarken dikkat edilecek kavramlar vardır:
- Değişken adları rakamla başlayamaz
- Tanımlama yaparken büyük-küçük harf ayrımı vardır.
- Class, namespace ve kontrol isimleri gibi program tarafından kullanılan isimler verilemez.
- Aynı kod bloğu içerisinde aynı isimden birden fazla değişken tanımlanamaz.
- Özel karakter içermez örneğin /,*,-,+.
- Boşluk kullanılamaz.
- Türkçe karakter kullanılmamalıdır. Ş, ğ,ü,ö,ç,ı gibi…
- Özel sözcükler (if, else, random, vb.) kullanılmaz.
Swift’te değişken tanımı yapılırken var veya let ifadelerini kullanmamız gerekmektedir.
var ifadesi, değişken (variable) tanımında (yani tanımlanan değişkenin değerinin istenildiği bir zamanda değiştirilebildiği)
let ifadesi, sabit (constant) tanımında (yani tanımlanan değişkenin değeri ilk atama sonrasında değiştirelemeyecek)
kullanılacaktır. Bu açıdan uygulama içerisinde değerini tekrar değiştirmemeniz gerekecek değişkenleri let ile, diğerlerini var ile tanımlamalıyız.
var veya let ile yapacağınız değişken tanımlamalarında değişkenleri şu şekilde tanımlayabiliriz.
var str:String
let a:Int
ancak şöyle bir tavsiyede bulanayım. Yukarıdaki şekilde tanımladığımız değişkenlerin başlangıç değerlerini atama alışkanlığı kazanırsanız çok daha iyi olur.
Yani var str: String = " "
let a:Int = 0
şeklinde tanımlamanız çok daha iyi olur.
Aşağıdaki şekilde değişkeni tanımladığınız zaman Swift atadığınız ilk değere göre tipini belirleyebilecektir. Sonraki kullanımlarda da değişken belirlenen bu tip’e uygun davranacaktır. (Type Inference)
var str= ""
str = "merhaba" // str'nin değeri selam olacaktır.
let a = 5
a = 10 // let ile tanımlanan bir değişkenin değeri değiştirilemeyeceği için hata alacaksınız.
Int, String, Double vb veri tipleri yanında isterseniz kendi alias’larınızı tanımlayarakta değişkenleri tanımlayabilirsiniz. Örn. Int tipi yerine SayisalDeger şeklinde bir kullanım istiyorsanız typealias keyword’ü ile aşağıdaki şekilde gerçekleştirebilirsiniz.
typealias SayisalDeger = Int
var sayi:SayisalDeger = 5
Temel Değişken Tipleri
Temel değişkenleri tipini belirterek (explicit) veya belirtmeden (implicit) tanimlayabiliyoruz. Kesirli sayılar için Double ve Float‘ı, boolean değerler için (true/false olabilir) Bool‘u kullanıyoruz. String’ler için Objective-C’deki gibi @ işaretine artık ihtiyaç duymadan String değişkenini tanımlayabiliyoruz.
TUPLE (ÇOKLU, ÇOK BİLEŞENLİ)
Swift’te mevcut olan ve diğer bir çok bilgisayar dilinde mevcut olmayan bir veri tipi de tuple’dır. Tuple, farklı türlerden veriler içeren heterojen bir veri yapısıdır.>
let calisan=(1234,"ibrahim","can",5000,"fatih")
Burada calisan adlı ve elemanları Int, String, String, Int, String türünde tanımlanmış bir tuple oluşturulmuştur.
Tuple içindeki alanlar da ayrıca tanımlanabilir:
let (sicil,ad,soyad,maas,adres)=calisan
Oluşturulan tuple’ın içindeki bileşen ya da alanlara çeşitli şekillerde erişilebilir:
print(calisan.0) ekrana 1234 yazacaktır.
OPTIONALS (SEÇİMLİ)
Optional türü C ve Objective C’de mevcut olmayan bir türdür. Bu türde bir verinin,
-Belirli tipte bir veriyi içerebileceği
ya da
-hiç bir veri içermeyeceği farz edilir.
let say=”1234”
let intSay=say.toInt()
Burada toInt fonksiyonu stringi tam sayıya (Int) dönüştüren bir fonksiyondur. Burada dönüşüm başarılı olacak ve intSay 4567 tam sayısı olarak üretilecektir.
Ancak, say stringi “istanbul” gibi sadece harflerden oluşsaydı bu dönüşüm gerçekleşmeyecekti. O nedenle intSay’ın türü Int değil Optional Int’tir ve Int? Şeklinde de gösterilir.