【Xcode/Swift】引数にGenerics(ジェネリクス)を使ってみる

今回の内容

・関数の引数にGenericsを使ってみる

引数にGenericsを使うことで、呼び出し時に渡す引数の型を自由に指定できます、String , Int, Double,,,,,なんでもOKです。


サンプルコード

import UIKit

class ViewController: UIViewController {

    // MARK: - View Lifecycle
    override func viewDidLoad() {
        super.viewDidLoad()
        let stringGenerics = helloGenerics(first: "My name is Ichiro", second: "My name is Shohei")
        let intGenerics = helloGenerics(first: 45, second: 28)
        let doubleGenerics = helloGenerics(first: 180.0, second: 193.5)
        let booleanGenerics = helloGenerics(first: false, second: true)
        print("StringGenerics: \(stringGenerics)") // String型
        print("IntGenerics: \(intGenerics)") // Int型
        print("DoubleGenerics: \(doubleGenerics)") // Double型
        print("BooleanGenerics: \(booleanGenerics)") // Boolean型
    }
    
    // MARK: - Private Methods
    private func helloGenerics<T>(first: T, second: T) -> (T, T) { // 何の型でもOK
        return (first, second)
    }

}

一つの関数でstringGenericsではString型, intGenericsではInt型と型を柔軟に変更できるので便利ですね。