1. leegun

    Posted

    leegun
Changes in title
+【Swift】ジェネリクス(Generics)の書き方
Changes in tags
Changes in body
Source | HTML | Preview
@@ -0,0 +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とかでよく見かけますが、今まで抽象化するより型を縛るイメージでした。
+他にも色々な使い方があるかもしれません。
+
+今後はバンバンGenerics活用して行きます!