Subscripts

昨日に引き続き https://docs.swift.org/swift-book/LanguageGuide/Subscripts.html を読む。

  • クラス、構造体、列挙型は subscript を定義できる
  • subscript(index: Int) -> String { get{ return …} set(newValue){〜} }
    • setのデフォルトパラメータ名はnewValue
  • subscript(index: Int) -> String { return …} 読み取り専用
  • 配列[index] 辞書[key] のようにアクセスできる
  • 一つの型に複数 subscript を定義できる(オーバーロード)
  • 添字形式 [] を使っている文脈で型推論されて適切なやつが選ばれる
  • 入力パラメータの数はいくつでも。パラメータの型は何でも
  • 返り値の型はなんでも
  • パラメータは可変引数にできる
  • inout パラメータは使えない。デフォルトパラメータ値はできない