본문 바로가기

IT/Swift

[swift] Subscript

[swift 기초문법] - 서브스크립트(Subscript)

 

서브스크립트(Subscript)

클래스, 구조체, 컬렉션, 리스트, 시퀀스 등 타입 요소에 접근하는 단축 문법입니다.

별도의 getter, setter를 구현하지 않아도 set하거나 get할수 있습니다.

각 타입의 구현부 또는 익스텐션 구현부에 위치해야 합니다.

읽고 쓰기 가능하게 하거나 읽기만 가능하게도 구현이 가능합니다.

연산 프로퍼티의 형태와 유사합니다.

다양한 매개변수 타입을 사용하여 중복정의(Overload)가 가능합니다.

자신이 가지는 시퀀스나 컬렉션 리스트 등의 요소를 반환하고 설정할 때 주로 사용합니다.

인스턴스 이름 뒤에 대괄호만으로 편리하게 사용 가능합니다.

 

 

 

 

 

    subscript(index: Int) -> Int {

        get {

            // 값 반환

        }

        set (value) {

            //value set

        }

    }

 

 

example ) 

 

struct Member {

    var name: String

    var id: Int

}

 

class Group {

    var id = 0

    var members: [Member] = []

    

    func addMember(_ names: String...) {

        for name in names {

            members.append(Member(name: name, id: id))

            id += 1

        }

    }

    

    subscript(memberID: Int) -> Member? {

        if memberID < id {

            return members[memberID]

        }

        return nil

    }

}

 

let group = Group()

group.addMember("KJY", "PHJ", "LSY")

print(group[1]?.name) //Optional("PHJ")

 

 

 

 

 

#swift 기초

#swift 강의

#ios programming

'IT > Swift' 카테고리의 다른 글

[swift] Type Casting  (0) 2019.09.23
[swift] Inheritance  (0) 2019.09.22
[swift] Map, Filter, Reduce, Monad, FlatMap  (0) 2019.09.16
[swift] Architecture mvc/mvp/mvvm/viper/vip 비교  (0) 2019.08.21
[swift] swift5  (0) 2019.08.21