ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • mutating
    Swift 2019. 11. 19. 10:18

    구조체를 정의할 때

    메서드가 구조체 내부의 데이터를 수정할 때는 mutating 키워드를 선언 해주어야 한다.

    mutate란 사전적으로 변화시키다, 돌연변이  의 뜻을 갖는다.
    뜻을 잘 생각하면 어떻게 쓰이는지 쉽게 이해할 수 있는데,
    말 그대로 원래는 되지 않는 어떤 것을 되게 만드는, 돌연변이로 만드는 것이다.

    Swift에서 class 는 reference type 임에 반해 structenumvalue type 이다.

     

    value type 일 때 자신의 인스턴스 메서드 안에서는 property를 수정할 수 없다.

    이때 수정이 필요하다면 mutating 키워드를 사용해야 한다.

    struct Point {
        var x = 0.0, y = 0.0
        
        // value type인 struct에서
        // 자신의 property인 x와 y를 변화시키기 위해서는
        // mutating을 붙여주어야 한다.
        mutating func moveBy(x deltaX: Double, y deltaY: Double) {
            x += deltaX
            y += deltaY
        }
    }

    'Swift' 카테고리의 다른 글

    ARC(Autometic Reference Counting)  (0) 2020.02.03
    escaping closure  (0) 2020.01.30
    inout  (0) 2019.10.24
    Variadic functions, 불특정 개수 파라미터  (0) 2019.10.24
    Class vs Struct in Swift  (0) 2019.10.21

    댓글

Designed by Tistory.