[Swift] Mutating Keyword 사용법 & 예제
- Language/Swift
- 2020. 9. 9.
728x90
Mutating Keyword 사용법 & 예제
인스턴스 메서드란?
인스턴스 메서드는 특정 타입의 인스턴스에 속한 함수를 뜻 합니다.
인스턴스 내부의 프로퍼티 값을 변경하거나 특정 연산 결과를 반환하는 등 인스턴스와 관련된 기능을 실행합니다.
인스턴스 메서드는 함수와 달리 특정 타입 내부에 구현하기 때문에 인스턴스가 존재 할 때만 사용할 수 있습니다. (이 점이 함수와 유일한 차이점)
자신의 프로퍼티 값을 수정할 때 클래스의 인스턴스 메서드는 크게 신경안써도 되지만,
구조체나 열거형 등은 값 타입이므로 , mutaitng 키워드를 붙여서 해당 메서드가 인스턴스 내부의 값을 변경 한다는 것을 암시 해야합니다.
사용 예제
struct LevelStruct {
var level: Int = 0 {
didSet {
print("Level \(level)")
}
}
mutating func levelUp() {
print("Level Up!")
level += 1
}
mutating func levelDown() {
print("Level Down")
level -= 1
if level < 0 {
reset()
}
}
mutating func jumpLevel(to: Int) {
print("Jump to \(to)")
level = to
}
mutating func reset() {
print("Reset!")
level = 0
}
}
var levelStructInstance: LevelStruct = LevelStruct()
levelStructInstance.levelUp()
//Level 1
levelStructInstance.levelDown()
//Level 0
levelStructInstance.levelDown()
//Level -1
levelStructInstance.jumpLevel(to: 3)
//Level 3
출처 : SWIFT 스위프트 프로그래밍(야곰)
728x90
'Language > Swift' 카테고리의 다른 글
[Swift] Method and Subscript 사용법 & 예제 [2/2] (0) | 2020.09.11 |
---|---|
[Swift] Method and Subscript 사용법 & 예제 [1/2] (0) | 2020.09.11 |
[Swift] Initializers (초기화) 사용법 & 예제 [2/2] (0) | 2020.09.08 |
[Swift] Initializers (초기화) 사용법 & 예제 [1/2] (0) | 2020.09.08 |
[Swift] 제네릭 (Generics Function)이란? (0) | 2020.09.04 |