클래스, 구조체, 열거형에서 스크립트를 정의해 사용할 수 있다.
서브스크립트를 이용해 추가적인 메서드 없이 특정 값을 할당하거나 가져올 수 있다.
서브스크립트는 Computed Property와 선언이 비슷하다.
subscript(parameter: T) -> T {
get { ... }
set(newValue) { ... }
} // read-write subscript
subscript(parameter: T) -> T {
...
return ...
} // read-only subscript
struct AppendSuffix {
let suffix: String
subscript(string: String) -> String {
return string + suffix
}
}
let instance = AppendSuffix(suffix: "!")
// instance["Hi"] : Hi!
// instance["AppendSuffix"] : AppendSuffix!
in-out
파라미터와 기본 인자값을 사용할 수 없다.