Enumerate Metodu
Coddy'nin Swift Journey'sinin Temeller bölümünün bir parçası — ders 70 / 86.
Bazen bir dizi üzerinde döngü kurarken, sadece öğeyi değil, aynı zamanda onun konumunu da bilmeniz gerekir. Bir sayaç değişkeni ile indeksi manuel olarak takip edebilecek olsanız da, Swift daha temiz bir çözüm sunar: enumerated() metodu.
Bir dizi üzerinde enumerated() metodunu çağırdığınızda, her bir demetin (tuple) dizini ve öğeyi içerdiği bir demet dizisi döndürür:
let colors = ["Red", "Green", "Blue"]
for (index, color) in colors.enumerated() {
print("\(index): \(color)")
}
// 0: Red
// 1: Green
// 2: BlueDöngü içinde her bir demeti (tuple) (index, color) kullanarak doğrudan nasıl ayrıştırdığımıza dikkat edin. Bu, herhangi bir ek kod yazmadan her iki değere de erişmemizi sağlar.
Bu, özellikle numaralandırılmış listeler görüntülemeniz veya bir öğenin konumuna bağlı işlemler gerçekleştirmeniz gerektiğinde kullanışlıdır:
let tasks = ["Wake up", "Exercise", "Eat breakfast"]
for (index, task) in tasks.enumerated() {
print("Task \(index + 1): \(task)")
}
// Task 1: Wake up
// Task 2: Exercise
// Task 3: Eat breakfastenumerated() metodu, ayrı bir sayaç değişkenini manuel olarak yönetmeye kıyasla kodunuzu temiz ve okunabilir tutar.
Görev
Kolayitems parametresini alan ve her bir öğeyi konum numarasıyla birlikte gösteren biçimlendirilmiş bir dize döndüren bir formatWithPositions fonksiyonu yazın.
Dizi üzerinde gezinmek ve her bir öğenin başına 1 tabanlı konum numarasının eklendiği bir dize oluşturmak için enumerated() metodunu kullanın.
Mantık:
enumerated()kullanarak dizi üzerinde gezinin- Her bir öğe için,
"position. item"formatında (1 tabanlı numaralandırma kullanarak) bir dize oluşturun - Tüm biçimlendirilmiş dizeleri bir yeni satır karakteri (
\n) ile birleştirin
Parametreler:
items([String]): Biçimlendirilecek dizelerden oluşan bir dizi
Dönüş Değeri: Her bir öğenin kendi satırında olduğu ve başına konum numarasının eklendiği tek bir dize (String). Format: "1. item1\n2. item2\n3. item3"
Örnek: Eğer items değeri ["Apple", "Banana", "Cherry"] ise, fonksiyon şunu döndürmelidir:
"1. Apple\n2. Banana\n3. Cherry"Not: Eğer dizi boşsa, boş bir dize "" döndürün.
Kopya kağıdı
enumerated() metodu, bir dizinin hem indeksini hem de elemanını içeren bir demet (tuple) dizisi döndürür:
let colors = ["Red", "Green", "Blue"]
for (index, color) in colors.enumerated() {
print("\(index): \(color)")
}
// 0: Red
// 1: Green
// 2: BlueHer bir demet (tuple), (index, element) sözdizimi kullanılarak doğrudan döngü içinde ayrıştırılır ve hem konuma hem de değere erişim sağlar.
Bu, sıfır tabanlı indekse 1 ekleyerek numaralandırılmış listeler oluşturmak için kullanışlıdır:
let tasks = ["Wake up", "Exercise", "Eat breakfast"]
for (index, task) in tasks.enumerated() {
print("Task \(index + 1): \(task)")
}
// Task 1: Wake up
// Task 2: Exercise
// Task 3: Eat breakfastKendin dene
func formatWithPositions(items: [String]) -> String {
// Kodu buraya yazın
}
Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
Temeller bölümündeki tüm dersler
4Operatörler Bölüm 1
Aritmetik OperatörlerModül OperatörüBileşik AtamaÖzet - Basit MatematikKarşılaştırma Operatörleri7Temel Giriş/Çıkış
Print FonksiyonuString InterpolationReadLine GirişiTür DönüşümüÖzet - 120'ye KadarÖzet - Doğru veya Yanlış10Fonksiyonlar
Fonksiyon TanımlamaParametreler ve ArgümanlarDönüş DeğerleriArgüman EtiketleriÖzet - Sigma FonksiyonuÖzet - Doğrulama FonksiyonuVarsayılan Değerler13Diziler Üzerinde Yineleme
Elemanlar Üzerinde YinelemeEnumerate MetoduStringler Üzerinde Yineleme P1Stringler Üzerinde Yineleme P22Değişkenler
Let vs VarTip BelirteçleriSayılarStringBooleanİsimlendirme KurallarıÖzet - Değişkenleri Başlatma5Operatörler Bölüm 2
Mantıksal Operatörler Bölüm 1Mantıksal Operatörler Bölüm 2Özet - Basit MantıkMantıksal Operatörler Bölüm 3Ternary Operatör8Hesap Paylaşım Hesaplayıcısı
Hoş Geldiniz MesajıGirdi Alma14İleri Seviye Diziler
Dizi Dilimleme Bölüm 1Dizi Dilimleme Bölüm 2Sıralı Yapı OperatörleriContains Metodu3Opsiyoneller
Opsiyoneller NedirIf Let ile UnwrappingGuard LetNil Coalescing OperatörüÖzet - Güvenli Unwrapping6Karar Yapıları
If İfadesiIf - ElseÖzet - Basit Hesap MakinesiSwitch İfadesiAralıklı Switch Kullanımı9Döngüler
For-In DöngüsüWhile DöngüsüRepeat-While DöngüsüBreakContinueÖzet - FaktöriyelDöngülerde Aralıklarİç İçe DöngülerÖzet - Dinamik Girdi