最終更新日: 2026-07-26
TOP(About this memo)) > 一覧(Swift) > ジェネリクス
protocol Container {
associatedtype ItemType
mutating func append(item: ItemType)
var count: Int { get }
subscript(i: Int) -> ItemType { get }
}
struct IntStack: Container {
var items = [Int]()
typealias ItemType = Int // 準拠させる側はtypealiasで指定。
// 〜
}
func xxxx<T>(a: T, b: T) {
// 〜
}
struct Stack<Element> {
var items: [Element] = []
mutating func push(_ item: Element) {
items.append(item)
}
mutating func pop() -> Element {
return items.removeLast()
}
}
<T: SomeClass, U: SomeProtocol>
〜〜 where XXXX: YYYY
where S.DynamicType == T<>内ではなく、関数シグネチャの後ろにwhere節を書く現在の書き方に変わっている点に注意)
public func map<S: Dynamical, T, U where S.DynamicType == T>(dynamical: S, f: T -> U) -> Dynamic<U>public func mapの部分)。(dynamical: S, f: T -> U)の部分)。-> Dynamic<U>の部分)。S: Dynamicalの部分)。S.DynamicType == Tの部分)。