Map
Coddy'nin Swift Journey'sinin Mantık ve Akış bölümünün bir parçası. Ders 23 / 56.
map bir closure alır ve bunu her elemana uygulayarak sonuçlardan oluşan yeni bir dizi döndürür. Yeni dizi, kaynakla aynı uzunluğa sahiptir.
let nums = [1, 2, 3, 4]
let doubled = nums.map { $0 * 2 }
print(doubled) // [2, 4, 6, 8]$0, closure'ın ilk parametresi için kullanılan kısa yazımdır. Uzun biçimde parametre adı ve dönüş türü açıkça belirtilir:
let doubled = nums.map { (n: Int) -> Int in
return n * 2
}map öğe türünü de değiştirebilir. String döndüren bir closure üzerinden bir [Int] eşlemek size bir [String] verir:
let labels = nums.map { "#\($0)" }
print(labels) // ["#1", "#2", "#3", "#4"]Görev
KolayTek bir giriş satırı okuyun: virgülle ayrılmış bir tamsayı listesi (Fahrenheit cinsinden sıcaklıklar).
Her birini tamsayı aritmetiği kullanarak C = (F - 32) * 5 / 9 formülüyle Celsius'a dönüştürün (sıfıra doğru kırpın, ondalık kullanmayın). Ayrı satırlarda şunları yazdırın:
,ile birleştirilmiş Celsius sıcaklıklarıF=<f> C=<c>önekiyle her sıcaklık için bir etiket; etiketleri;ile birleştirin
Her iki satır için de map kullanın.
32,212,98,0 girdisi için çıktı şöyledir:
0,100,36,-17
F=32 C=0;F=212 C=100;F=98 C=36;F=0 C=-17Kendin dene
let f = readLine()!.components(separatedBy: ",").map { Int($0)! }
// TODO: satır 1 = celsius "," ile birleştirilmiş
// TODO: satır 2 = etiketler "F=<f> C=<c>" ";" ile birleştirilmiş
Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
Mantık ve Akış bölümündeki tüm dersler
1Stringler Derinlemesine
Sayma ve İndekslerBüyük-Küçük Harf ve KırpmaStringlerde AramaBölme ve BirleştirmeAlt Stringleri DeğiştirmeÖzet - Kullanıcı Adı Kontrolü4Kümeler
Küme OluşturmaBirleşim ve KesişimFark ve Simetrik FarkAlt Küme ve Üst KümeÖzet - Etiket Filtresi7Proje - Alışkanlık Takibi
Projeye Genel BakışTamamlandı Olarak İşaretle10Proje - Quiz Motoru
Projeye Genel BakışSoruları Sorma2Aralıklar ve Adımlar
Kapalı ve Yarı AçıkStride (Adım)Aralık MetotlarıSwitch İçinde AralıklarÖzet - Takvim Izgarası5Yüksek Mertebeden Fonksiyonlar Bölüm 1
MapFilterReduceMap, filter, reduce zincirlemeÖzet - Kelime İstatistikleriKendi başına pratik yap: Swift playground