Swift入門メモ -ジェネリクス-

24 ジェネリクス

dotinstall.com

  • 抽象化されたデータ型
  • どのような型が来てもOK
    • <T> -> Tは何の型が来てもいいという意味
// ある整数を指定した個数分だけ集めた配列を返す関数
func getIntArray(item: Int, count: Int) -> [Int] {
    var result = [Int]()
    for _ in 0..<count {
        result.append(item)
    }
    return result
}

getIntArray(5, 5) // [5, 5, 5, 5, 5]


/*
  getIntArrayを拡張してString型やFloat型にも対応させたい
    -> そのために使えるのがジェネリクス
*/

// 関数の後に型の名前を書く
// 「T」は何の型が来てもいいという意味
func getArray<T>(item: T, count: Int) -> [T] {
    var result = [T]()
    for _ in 0..<count {
        result.append(item)
    }
    return result
}


// 整数型
getArray(3, 4) // [3, 3, 3, 3]

// String型
getArray("EBC", 8) // ["EBC", "EBC", "EBC", "EBC", "EBC", "EBC", "EBC", "EBC"]

// Float型
getArray(3.1419, 2) // [3.1419, 3.1419]

Javaにもこんなのあったような。。
一先ずドットインストール終了(^ν^)