標準プロトコルに準拠
Swift
==
に対応できるようにしたり、とか。
| Protocol | 使えるようになる機能 | 実装するメンバ |
|:-|:-|
| Equatable | ==
, !=
| |
| Comparable | >
, <
, >=
, <=
| ==
を implement するだけ。全メンバ比較するだけならデフォルト動作なので実装不要。 |
| Numeric | +
, -
, *
, /
| それぞれの演算子を implement |
| Hashable | collection に含まれる | hash(into:..)
を impmlement (中で combine()
呼ぶ) すると hashValue
で区別される。メンバが Hashable なら、特に implement 不要 |
| CaseIterable | allCases
で Enum の値が一覧できるようになる | 特にないのだが、既存(標準ライブラリとかの)のEnum につけることはできないみたい |
文字列内の式の展開をカスタマイズしたい場合,
String.StringInterpolation
の appendInterpolation()
を extend する。
使うことあるだろうか。
swift
extension String.StringInterpolation {
mutating func appendInterpolation(value v: Int) {
appendLiteral("<< \(v) >>")
}
}
print("the value is \(value: 3)") // => "the value is << 3 >>"