Menu
Coddy logo textTech

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"]
challenge icon

Görev

Kolay

Tek 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:

  1. , ile birleştirilmiş Celsius sıcaklıkları
  2. 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=-17

Kendin 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ş
quiz iconKendini test et

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

Kendi başına pratik yap: Swift playground