letile sabit,varile değişken tanımlamak ve farkı açıklamakInt,Double,String,Booltürlerini tanımak ve birbirine dönüştürmek- Karakter dizisi interpolasyonu ve metotlarıyla çalışmak
Bir oyunda puanın her dakika değişir ama doğum yılın hiç değişmez. Programlar da bu tür bilgileri hatırlamak zorundadır: bazıları değişir, bazıları sabit kalır. Swift bu iki durumu kesin olarak birbirinden ayırır ve bu da programları daha güvenli yapar.
`let` ve `var`
Bir değeri hatırlamak için ona bir ad veririz. **let ile tanımlanan ad bir sabittir: değeri bir kez verilir ve sonra değiştirilemez. var ile tanımlanan ad ise bir değişkendir**: ona istediğin zaman yeni bir değer verebilirsin. = işareti burada “eşittir” değil, “bu değeri kaydet” anlamına gelir.
let birthYear = 2012
var score = 0
score = 10
score += 5
print(birthYear)
print(score)2012 15
score += 5, score = score + 5 ifadesinin kısa yazılışıdır. Aynı şekilde -=, *= ve /= de vardır. Bir sabitin değerini değiştirmeye çalışırsan derleyici programı çalıştırmaz:
let city = "Baku"
city = "Ganja" // error: cannot assign to value: 'city' is a 'let' constantTürler ve tür çıkarımı
Swift'te her değerin bir türü vardır ve tür asla değişmez. En sık kullanılan türler şunlardır:
| Tür | Ne saklar | Örnek |
|---|---|---|
Int | tam sayılar | 42, -7 |
Double | ondalıklı sayılar | 3.14, 1.62 |
String | metin | "Baku" |
Character | tek bir karakter | "A" |
Bool | mantıksal değer: doğru ya da yanlış | true, false |
Derleyicinin türü değerin kendisinden belirlemesi. let age = 13 yazdığında Swift, age'in Int olduğunu kendisi anlar. Türü açıkça da belirtebilirsin: let price: Double = 5.
let age = 13
let height = 1.62
let name = "Leyla"
let isStudent = true
let price: Double = 5
print(age, height, name, isStudent, price)
print(type(of: height))13 1.62 Leyla true 5.0 Double
Swift tür güvenli bir dildir: Int ve Double türündeki değişkenleri doğrudan toplayamaz ya da çarpamazsın. Önce birini diğerinin türüne dönüştürmen gerekir. Dönüştürme türün adıyla yazılır: Double(apples), Int(7.9), String(42). Dikkat: Int(7.9) yuvarlamaz, yalnızca ondalık kısmı atar.
let apples = 3
let pricePerKg = 2.5
// let total = apples * pricePerKg // error: Int * Double
let total = Double(apples) * pricePerKg
print(total)
print(Int(7.9))
print(String(42) + "!")7.5 7 42!
Karakter dizileri ve interpolasyon
Karakter dizileri + ile birleştirilebilir. Ama daha pratik yol interpolasyondur: dizinin içine ters eğik çizgi \ ve ardından parantez içinde bir değer ya da ifade yazarsın; o da metne yerleştirilir. Aşağıdaki örneğe bak. Böylece sayıları önce karakter dizisine dönüştürmen gerekmez.
let firstName = "Aysel"
let lastName = "Mammadova"
let fullName = firstName + " " + lastName
print(fullName)
let age = 14
print("\(firstName) is \(age) years old.")
print("In 5 years she will be \(age + 5).")Aysel Mammadova Aysel is 14 years old. In 5 years she will be 19.
Karakter dizilerinin faydalı özellik ve metotları vardır: count karakter sayısını, uppercased() ve lowercased() büyük ve küçük harfli hâlini verir; hasPrefix(_:) dizinin nasıl başladığını, contains(_:) ise içinde bir parçanın olup olmadığını kontrol eder. isEmpty dizinin boş olup olmadığına bakar.
let word = "Swift"
print(word.count)
print(word.uppercased())
print(word.lowercased())
print(word.hasPrefix("Sw"))
print(word.contains("if"))
print("".isEmpty)5 SWIFT swift true true true
Birkaç satırlık metin için üç çift tırnak (""") kullanılır. İnterpolasyon bu tür metinlerde de çalışır:
let student = "Elvin"
let card = """
Student: \(student)
City: Baku
"""
print(card)Student: Elvin City: Baku
Önemli noktalar
letsabit,vardeğişken tanımlar; mümkün olan her yerdeletkullan.- Temel türler:
Int,Double,String,Character,Bool. - Swift türü değerden kendisi çıkarır, ama
: Türile açıkça da yazılabilir. - Farklı türler karıştırılamaz;
Double(x),Int(x),String(x)ile dönüştür. - İnterpolasyon — dizi içinde ters eğik çizgi ve parantez — herhangi bir değeri ya da ifadeyi metne yerleştirir.
Kendini test et
10 soru. Her doğru cevap XP kazandırır.