Enumerate Yöntemi
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.
Kendin 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 OperatörüBileşik AtamaTekrar - Basit MatematikKarşılaştırma Operatörleri7Temel Girdi/Çıktı
Print FonksiyonuDize EnterpolasyonuReadLine ile GirdiTür DönüşümüTekrar - 120'ye KadarTekrar - Doğru mu Yanlış mı10Fonksiyonlar
Fonksiyon TanımlamaParametreler ve ArgümanlarDönüş DeğerleriArgüman EtiketleriTekrar - Sigma FonksiyonuTekrar - Doğrulama FonksiyonuVarsayılan Değerler13Diziler Üzerinde Yineleme
Öğeler Üzerinde YinelemeEnumerate YöntemiDizeler Üzerinde Yineleme P1Dizeler Üzerinde Yineleme P22Değişkenler
Let ve VarTür AnotasyonlarıSayılarStringBooleanAdlandırma KurallarıTekrar - Değişkenleri Başlat5Operatörler Bölüm 2
Mantıksal Operatörler Bölüm 1Mantıksal Operatörler Bölüm 2Tekrar - Basit MantıkMantıksal Operatörler Bölüm 3Üçlü Operatör8Hesap Bölüştürme Hesaplayıcısı
Karşılama MesajıGirdi Alma11FizzBuzz'a Farklı Bir Yorum
Oyuna Genel BakışFizzBuzz Fonksiyonu3Optional Değerler
Optional Değerler NedirIf Let ile AçmaGuard LetNil Birleştirme OperatörüTekrar - Güvenli Açma9Döngüler
For-In DöngüsüWhile DöngüsüRepeat-While DöngüsüBreakContinueTekrar - FaktöriyelDöngülerde Aralıklarİç İçe DöngüTekrar - Dinamik GirdiKendi başına pratik yap: Swift playground