Swift

[Swift] protocolを使ったテクニック Self縛り

Self縛り

  • ある特定の型に依存したデフォルト実装が行える
  • ただし縛る方の型がそのプロトコルを適合している必要がある
Self縛り例.swift
protocol P {}
// UIViewControllerにPを適合することで初めてSelf縛りにUIViewControllerが使える
extension UIViewController: P {}

// Self縛り
extension P where Self: UIViewController {
// UIViewControllerに依存したデフォルト実装が行える
}

Warning: Self縛りという言葉は私の造語です。