Bu dersimizde operators (operatörler) ve expressions (ifadeler) konularına değinilecek. Bu ders hakkında ilk bilmeniz gerekenler;
Operators: değerleri kontrol etmek, değiştirmek veya birleştirmek için kullanılabilecek özel semboller veya ifadelerdir.
Expressions: tek bir değere indirgenebilen ifadelerdir.
- OPERATÖR TÜRLERİ
Swift’te operatörler, 3 sınıfa ayrılır:
I. Tekli (unary) operatörler
II. İkili (binary) operatörler
III. Üçlü (ternary) operatörler
TEKLİ OPERATÖRLER
Tekli operatörler bir operandın ya önünde (prefix) ya da sonunda (postfix) yer alırlar.
Örneğin, ~a,++x,!u ifadelerinde a, x ve u operandlarının önünde(prefix) ~,++ ve ! operatörleri bulunmaktadır. g++ ifadesinde ise ++, g operandı için bir posfix tekli operatördür.
İKİLİ OPERATÖRLER
Bunlar iki operand arasında yer alırlar o nedenle infix (arada) operatörler olarak isimlendirilir. Örneğin a * b ifadesinde * bir ikili operatör, a ve b ise operandlardır.
ÜÇLÜ OPERATÖRLER
C dilinde olduğu gibi Swift’te de sadece bir tane üçlü operatör vardır:
x ? y : z
Burada x Bool tipi bir değerdir. x true ise iadenin değeri y, aksi takdirde ise z’dir.
ÖRNEK:
Bu örnekte x Bool tipi bir değişkendir. Eğer a>b ise x’in değeri true a<=b ise de x’in değeri false olacaktır.
x true ise ilk print, x false ise de ikinci print icra edilecektir:
var x:Bool
var a=5
var b=3
x = a > b
x ? print("\(a)....\(b) den büyüktür"):print("\(a)....\(b) den küçük veya eşittir")
Programın çıktısı ise aşağıda verilmiştir:
5....3 den büyüktür
ATAMA (ASSIGNMENT) OPERATÖRÜ: =
= operatörü, pek çok bilgisayar dilinde olduğu gibi atama işlemini gerçekleştirir;
x=y ifadesinde y’nin değeri x’e atanır. x’in önceki değeri bu durumda kaybolur.
ÖRNEK:
var x:Int=12
var y=5
var c=3
x=y
print("x=\(x)")
c = c + 10
print("c=\(c)")
Programın çıktısı ise aşağıdaki gibi olacaktır:
x=5
c=13
Program ended with exit code: 0
Swift’te diğer dillerden farklı olarak sabit ve değişkenlere çoklu atama yapma imkanı da mevcuttur:
ÖRNEK:
var (x,y,z)=(2,9,-1)
let (u,v,w)=(12,45,-6)
print("x=\(x)")
print("y=\(y)")
print("z=\(z)")
print("u=\(u)")
print("v=\(v)")
print("w=\(w)")
Programın çıktısı ise aşağıdaki gibi olacaktır:
x=2
y=9
z=-1
u=12
v=45
w=-6
IF KOMUTU KOŞULU İÇİNDE = SEMBOLÜ
If komutu koşulu içinde eşitlik kontrolü tek bir = sembolü ile yapılırsa C’de hata mesajı alınmaz ancak kontrol dışı sonuçlar elde edilir.
Oysa bu durum Swift’te kontrol edilir ve tek = sembolü ile eşitlik kontrolü yapılırsa if komutu çalışmaz ve hata mesajı verir:
ÖRNEK:
Aşağıdaki kodu çalıştırınız:
var x=5
var y=5
if x == y { print("x=y");}
else { print("x<>y");}
if’in bu durumda doğru çalışmasını sağlamak için eşitlik kontrolünü iki eşit sembolü ile (==) yapmalısınız:
var x=5
var y=5
if x == y { print("x=y");}
else { print("x<>y");}
Bu durumda ise aşağıdaki çıktıyı elde edeceksiniz:
x=y