iOS – Swift Dersleri (Değişkenler, Diziler, Döngüler)

Merhaba Arkadaşlar,
Bu paylaşımda Swift programlama dilinde değişkenleri, temel değişken tiplerine, dizilere, kontrol akışlarına ve döngülere değineceğiz. Bu konuların temel anlamda nasıl kullanıldıklarını, örneklerle destekleyerek inceleyeceğiz.

Programlama dillerinin geleneksel giriş konusu olan “Hello World” çıktısı Swift’te aşağıdaki gibi yapılabiliyor:

println("Hello, world")

String birleştirerek de yapabiliriz:

var helloString = "Hello"
var worldString = "World"
var commaString = ", "
println(helloString + commaString + worldString);

C ve Objective-C’ye benzer bir syntax’a sahip olan Swift’te statement sonralarında noktalı virgül kullanımı opsiyonel olarak bırakılmış, kullanıp kullanılmaması geliştiriciye kalmış.

Değişkenler:

Sabit değişkenler (constant) let, değişkenler (variable) var ile tanımlanır. Sabit değişkenlere bir değer atanır ve kodun çeşitli yerlerinde kullanılabilir.

var myVariable = 42
myVariable = 50
let myConstant = 42

C ve Objective-C’de bir değişken tanımlarken tipini belirtmemiz gerekir. Swift’te değişkeni tipini belirtmeden tanımlayabiliyoruz. Derleyici o değişkene atadığımız ilk değerde o değişkenin tipini belirliyor. var myVariable dediğimizde myVariable‘in tipi belli değildir. myVariable = 50 dediğimizde derleyici myVariable değişkeninin tipini integer olarak ayarlar.

Değişkenin ilk değeri değişkenin tipinin belirlenmesinde yeterli bilgi içermiyorsa aşağıdaki gibi bir kullanımlar kendimiz ayarlayabiliriz. (Explicit kullanım)

let explicitDouble: Double = 70

explicitDouble sabit değişkeninin tipi Double olarak ayarlanıyor.

Değişkenler string içinde backslash karakteri (\) ile kullanılabilir

let apples = 3
let oranges = 5
let appleSummary = "I have \(apples) apples."
let fruitSummary = "I have \(apples + oranges) pieces of fruit."

Diziler (arrays) ve Dictionary’ler

Diziler (arrays) ve dictionary’ler köşeli parantez ile kullanılır.
(Güncelleme: Diziler ve Dictionary’ler ile ilgili detaylı bilgi için Collection Types yazımızı inceleyin.)

var shoppingList = ["catfish", "water", "tulips", "blue paint"]
shoppingList[1] = "bottle of water"
 
var occupations = [
    "Malcolm": "Captain",
    "Kaylee": "Mechanic",
]
occupations["Jayne"] = "Public Relations"

Boş dizi ve dictionary oluşturulması:

//köşeli parantez içinde tipini belirtiyoruz
let emptyArray = [String]()
let emptyDictionary = Dictionary<String, Float>()

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.

let price1 = 29.99
let price1Explicit: Double = 29.99

let price3 = 29.99
let price4: Float = 29.99

let isHaveChild = true
let isHaveChildExplicit: Bool = false

let city = "Stockholm"
let cityExplicit: String = "Stockholm"

Kontrol Akışı

Kontrol durumlarında if ve switch, döngü için for-in, for, while, and do-while kullanabiliriz. Parantez kullanımı opsiyonel bırakılmış, küme parantezi kullanımı zorunlu.

var score = 52
var teamScore = 0
        
if score > 50 {
	teamScore += 3
} else {
	teamScore += 1
}

println(teamScore);

Aynı değişken için birden fazla if kontrolü yapılacağı durumlarda switch tercih edilebilir:

let color = "yellow"
var houseColor: String = "";

switch color {
case "blue":
    houseColor = "It is a blue house."
case "red", "watercress":
    houseColor = "It is a red house."
case let c where c.hasSuffix("low"):
    houseColor = "It is a yellow house."
default:
    houseColor = "No color house"
}

println(houseColor);

interestingNumbers Dictionary tipi içindeki numaraları kontrol ederek en büyük sayıyı ve o sayının hangi dizi içinde olduğunu buluyor.

let interestingNumbers = [
    "Prime": [2, 3, 5, 7, 11, 13],
    "Fibonacci": [1, 1, 2, 3, 5, 8],
    "Square": [1, 4, 9, 16, 25],
]

var largest = 0
var serie = ""
for (kind, numbers) in interestingNumbers {
    for number in numbers {
        if number > largest {
            serie = kind
            largest = number
        }
    }
}

println(serie);
println(largest);

while ile do-While döngüsü arasındaki fark; kodun while döngüsüne hiç girmeme ihtimali olmasına rağmen, do-While döngüsüne en az bir kere girecek olmasıdır. Bir başka deyişle while döngüsünün statement’ı false ise kod while döngüsüne hiç girmeden çalışmaya döngüden sonraki statement’tan devam edecektir. Ama do-While döngüsünde bir kere döngünün içine girip ondan sonra while statement’ını kontrol edeceği için en az bir kere döngüye girmiş olacaktır.

var n = 2
while n < 100 {
    n = n * 2
}

var m = 2
do {
    m = m * 2
} while m < 100

Döngülerin index kullanarak aşağıdaki gibi bir kullanımı da olabilir. Her iki döngü de aynı işi yapmaktadır.

var firstForLoop = 0
for i in 0..<4 {
    firstForLoop += i
}
 
var secondForLoop = 0
for var i = 0; i < 4; ++i {
    secondForLoop += i
}

Bu paylaşımda Swift’te değişken kullanımlarını, temel değişken tiplerini, dizileri, kontrol akışlarını ve döngüleri incelemeye çalıştık. Bu konuların temel anlamda nasıl kullanıldıklarını, basit örneklerle inceledik. Mobilhanem‘de Swift ile ilgili paylaşımlara devam edeceğiz. Bundan sonraki paylaşımda sınıf, obje, fonksiyon gibi kavramlara değineceğiz.

Kaynak: apple.com

iOS – Swift Dersleri (Sınıflar, Objeler, Fonksiyonlar)
iOS – Swift Dersleri (Collection Types)

0

Aycan Ayhan

1 Yorum

Haftalık Bülten

Mobilhanem'de yayınlanan dersleri haftalık mail almak ister misiniz?