[swift] Swift 구조체의 멤버 변수와 멤버 함수에 대해 설명해주세요.
Swift에서 구조체는 값을 전달할 때 복사본을 생성하고 참조 형식이 아닌 값을 전달한다는 점을 제외하면 클래스와 유사한 기능을 제공합니다. 구조체는 멤버 변수와 멤버 함수를 가질 수 있으며, 다음과 같이 정의됩니다.
멤버 변수 (Stored Properties)
구조체 내부에 변수를 선언하면 멤버 변수가 됩니다. 멤버 변수는 상수로 선언될 수도 있으며, 초기화되지 않은 변수는 옵셔널 변수로 간주됩니다.
struct MyStruct {
var x: Int // 가변 멤버 변수
let y: String // 불변 멤버 변수
}
위의 예제에서 x
는 가변(mutating) 멤버 변수이며, 구조체의 인스턴스가 변경될 때 값이 업데이트될 수 있습니다. y
는 불변 멤버 변수이므로 인스턴스가 생성된 후에는 값이 변경되지 않습니다.
멤버 함수 (Instance Methods)
구조체 내부에 함수를 선언하여 멤버 함수를 정의할 수 있습니다. 구조체의 내부 상태를 변경해야 하는 경우에는 mutating
키워드를 사용해야 합니다.
struct MyStruct {
var x: Int
mutating func updateValue(newValue: Int) {
self.x = newValue
}
}
위의 예제에서 updateValue
함수는 mutating
키워드를 사용하여 self
의 값을 업데이트할 수 있도록 허용합니다.
Swift 구조체는 멤버 변수와 멤버 함수를 통해 유연한 모델링을 제공하며, 값 형식의 특성으로 인해 쓰레드 안전성과 코드 예측성을 강화하는 데 도움이 됩니다.
더 자세한 내용은 Swift 공식 문서를 참고하십시오.