「Swift5」ジェネリクスクラスを使うサンプル
環境
Swift version 5.2.3 (swift-5.2.3-RELEASE)
Target: x86_64-unknown-linux-gnu
書式
class クラス名<T> {
var 変数名: T
init(変数名: T){
self.変数名 = 変数名
}
}
class クラス名<T> {
var 変数名: T
init(変数名: T){
self.変数名 = 変数名
}
}
class クラス名<T> { var 変数名: T init(変数名: T){ self.変数名 = 変数名 } }
使用例
//クラスEmployeeの定義 ジェネリクスクラス
class Employee<T> {
//ジェネリクスクラスの変数の宣言
var count: T
//変数の初期化
init(count: T) {
self.count = count
}
}
let cftB = Employee(count: "456")
print("String型変数の出力")
print(type(of: cftB.count))
print(cftB.count)
let cftA = Employee(count: 110)
print("Int型変数の出力")
print(type(of: cftA.count))
print(cftA.count)
//クラスEmployeeの定義 ジェネリクスクラス
class Employee<T> {
//ジェネリクスクラスの変数の宣言
var count: T
//変数の初期化
init(count: T) {
self.count = count
}
}
let cftB = Employee(count: "456")
print("String型変数の出力")
print(type(of: cftB.count))
print(cftB.count)
let cftA = Employee(count: 110)
print("Int型変数の出力")
print(type(of: cftA.count))
print(cftA.count)
//クラスEmployeeの定義 ジェネリクスクラス class Employee<T> { //ジェネリクスクラスの変数の宣言 var count: T //変数の初期化 init(count: T) { self.count = count } } let cftB = Employee(count: "456") print("String型変数の出力") print(type(of: cftB.count)) print(cftB.count) let cftA = Employee(count: 110) print("Int型変数の出力") print(type(of: cftA.count)) print(cftA.count)
実行結果
$ swift 23.swift
String型変数の出力
String
456
Int型変数の出力
Int
110
$ swift 23.swift
String型変数の出力
String
456
Int型変数の出力
Int
110
$ swift 23.swift String型変数の出力 String 456 Int型変数の出力 Int 110