/* ジェネリクス 型指定の引数 */ func swapTwoInts(a: inout Int, b: inout Int) { let c = a a = b b = c } var p = 1 var q = 2 swapTwoInts(a: &p, b: &q) print("p = \(p), q = \(q)") func swapTwoValues<T>(a: inout T, b: inout T) { let c = a a = b b = c } var r = 1.0 var s = 2.0 swapTwoValues(a: &p, b: &q) print("p = \(p), q = \(q)") swapTwoValues(a: &r, b: &s) print("r = \(r), s = \(s)") // 外部引数名省略 func swapTwoVal<T>(_ a: inout T, _ b: inout T) { let c = a a = b b = c } swapTwoVal(&p, &q) print("p = \(p), q = \(q)") swapTwoVal(&r, &s) print("r = \(r), s = \(s)")