22. Subscript


*定義


-サブスクリプトは、集合などの集合内の特定の要素にアクセスする構文を意味します.サブスクリプトを使用して値または割当て値にアクセスしたり、直接実装したりできます.
まずクラスを作成します
class List {
    var data = [1, 2, 3] 
    
    subscript(index: Int) -> Int { 
        get { 
            return data[index]  
        }
        set { 
            data[index] = newValue
        }
    }
}
*現在実装されているサブスクリプトの形式から見ると、なぜかメソッドにも計算プログラムにも似ています.
  subscript(index: Int) -> Int { 
      get { 
          return data[index]  
      }
      set { 
           data[index] = newValue
      }
  }    
*形態に示すように,実際には類似の方法やプログラム機能を計算するところが多い.
1.まず、メソッドと同様の部分はパラメータと戻り型である.可変パラメータも使用できます.ただし、I/Oパラメータやデフォルト値を持つパラメータは使用できません.しかも回復型を宣言しなければならない.
2.計算プログラムと同様の部分は、ターゲットブロック、グループブロックを通じて値を読み取り、書き込むことができる.サブスクリプトを使用して値を格納すると、パラメータを使用して3つのブロックに値が渡されます.パラメータ名を省略すると、newValueという定数が自動的に与えられます.この点も計算プログラムに似ています.
var l = List()
l[0] 
*このようにインスタンスを作成してサブスクリプトを使用すると、getブロックが実行され、最初の要素が返されます.
l[1] = 123 
*このように新しい値を保存すると、setブロックが実行され、2番目の要素が更新されます.ただし、サブスクリプトを使用する場合は、パラメータのフォーマットと一致する必要があります.一致しないか範囲を超えた場合、エラーが発生します.
1[0,1] // error 
1[6] // error