VesselWheel

Mutating Keyword 본문

Xcode Study

Mutating Keyword

JasonYang 2023. 12. 5. 07:20

구조체나 열거형 내에서 매서드가 내부 속성을 수정할 수 있도록 하는 키워드 

mutating func

/*
Swift에서 mutating 키워드는 구조체(Structs)나 열거형(Enum) 내에서 
메서드(Method)가 해당 구조체 또는 열거형의 속성을 수정할 수 있도록 하는 키워드입니다.

기본적으로 Swift에서는 구조체나 열거형의 인스턴스가 상수로 선언되면 
해당 인스턴스의 속성을 변경할 수 없습니다. 
그러나 메서드 내에서 해당 인스턴스의 속성을 변경하려면 mutating 키워드를 사용하여 
해당 메서드가 해당 인스턴스의 속성을 수정할 수 있도록 허용해야 합니다.
*/

// 구조체 예시
struct Point {
    var x = 0.0, y = 0.0

    mutating func moveBy(x deltaX: Double, y deltaY: Double) {
        x += deltaX
        y += deltaY
    }
}

var point = Point(x: 1.0, y: 1.0)
print("Before moving: x = \(point.x), y = \(point.y)")

point.moveBy(x: 2.0, y: 3.0)
print("After moving: x = \(point.x), y = \(point.y)")

// Before moving: x = 1.0, y = 1.0
// After moving: x = 3.0, y = 4.0


// 열거형 예시
enum TrafficLight {
    case red, yellow, green

    mutating func next() {
        switch self {
        case .red:
            self = .green
        case .yellow:
            self = .red
        case .green:
            self = .yellow
        }
    }
}

var currentLight = TrafficLight.red
print("Current light is \(currentLight)")

currentLight.next()
print("Next light is \(currentLight)")

// Current light is red
// Next light is green

 

'Xcode Study' 카테고리의 다른 글

키오스크 프로그램(lv1)  (0) 2023.12.06
키오스크 프로그램과 클로져  (0) 2023.12.05
Calculator in playground  (0) 2023.11.30
Xcode의 StoryBoard가 xml 화면으로 나올 때  (0) 2023.11.24
UITableViewCell  (0) 2023.11.24