ジェネリクスとは
メソッドなどで使用される型が、実際に使う時に決定される機能のこと。
通常の関数の場合
下記のコードで、返却値を「おはよう」などの文字列を返したい場合、下記のコードの返却値の型はInt限定のため実現できない。
func test(param1: Int -> (Int) {
return param1
}
let result = test(param1: 1)
print(result) // 結果: 1
ジェネリック関数の場合
下記のコードだと、Sting型を引数に入れるとSting型が返却される。
先ほどのようにInt型を入れても、Int型が返却される。
*ジェネリクスの型はT、U、V などが使用されることが多いらしい。
https://swift.codelly.dev/guide/%E3%82%B8%E3%82%A7%E3%83%8D%E3%83%AA%E3%82%AF%E3%82%B9/#%E3%82%B8%E3%82%A7%E3%83%8D%E3%83%AA%E3%83%83%E3%82%AF%E5%9E%8B-generic-types
func test<T> (param1: T) -> (T) {
return param1
}
let result = test(param1: "おはよう")
print(result) // 結果: おはよう