1. leegun

    No comment

    leegun
Changes in body
Source | HTML | Preview
@@ -1,48 +1,48 @@
# ジェネリクス(Generics)の書き方
## Genericsってそもそも何?
抽象化されたデータ型
と言われてもよくわかりませんよね・・・
## 例題
あるデータ(Int, String, Double)を指定数だけ配列化して戻すメソッドを作りなさい。
このような、お題、あなたならどうやって作りますか?
``` non_generics.swift
func getIntArray(num: Int, count: Int) -> [Int] {
var result = [Int]()
for _ in 0..<count {
result.append(num)
}
return result
}
func getStringArray(num: String, count: Int) -> [String] {
var result = [String]()
for _ in 0..<count {
result.append(num)
}
return result
}
```
こんな冗長なメソッドを作ってませんか!?
私もそうしてました・・・
でもGenericsなら引数と戻り値を抽象化して簡単に1メソッドで定義できます。
``` generices.swift
func getArray<T>(num: T, count: Int) -> [T] {
var result = [T]()
for _ in 0..<count {
result.append(num)
}
return result
}
```
Javaとかでよく見かけますが、今まで抽象化するより型を縛るイメージでした。
他にも色々な使い方があるかもしれません。
-ちなみに<T>はtypeという意味で慣例的に使われてますが、別になんでも良い(<A><B><C>)そうです。
+ちなみに```<T>```はtypeという意味で慣例的に使われてますが、別になんでも良い(```<A>,<B>,<C>```)そうです。
今後はバンバンGenerics活用して行きます!