250x250
반응형
Notice
Recent Posts
Recent Comments
Link
관리 메뉴

스윞한 개발자

Swift 기초문법 - 스트럭트 mutating/메서드 본문

Swift 이론

Swift 기초문법 - 스트럭트 mutating/메서드

스윞남 2024. 1. 23. 14:16
728x90
반응형
SMALL

구조체 Struct에 대해 좀 더 자세히 알아보겠습니다!

 

mutating이란?

 

'mutating'은 Swift에서 구조체('struct') 내부에서 메서드가 자신을 수정할 수 있는지를 나타내는 특별한 키워드입니다. 

기본적으로 구조체(Struct)와 열거형(enum)은 값 타입이므로 해당 인스턴스의 프로퍼티를 변경하려면 메서드가 'mutating'으로 표시되어야 합니다.

'mutating' 키워드를 사용하면 구조체 내부에서 프로퍼티의 값을 변경하거나, 다른 메서드를 호출하여 자신을 수정할 수 있습니다. 구조체가 값 타입이지만 메서드 내부에서 상태를 변경하거나 특정 작업을 수행할 수 있도록 허용해줍니다.

 

struct Point {
    var x: Int
    var y: Int
    
    mutating func moveBy(x deltaX: Int, y deltaY: Int) {
        x += deltaX
        y += deltaY
    }}
    var point = Point(x: 10, y: 20)
    print("Before move: \(point)")  // Before move: Point(x: 10, y: 20)
    point.moveBy(x: 5, y: 5)
    print("After move: \(point)")   // After move: Point(x: 15, y: 25)

 

클래스는 값을 변경가능하지만 스트럭트는 불가능합니다.


스트럭트는 값을 그냥 출력하는것은 문제가 되지 않지만, 스트럭트가 가지고 있는 값을 변경하려고 하는 경우에는 에러가 발생합니다. 
* 클래스는 참조 타입. 스트럭트는 값 타입.

 

 

스트럭트 메소드

스위프트에서 구조체는 메소드를 가질 수 있습니다. 
구조체의 메소드는 해당 구조체 내에서 특정 작업을 수행하는 함수입니다.

메소드는 구조체 내부의 속성에 액세스할 수 있으며, 구조체의 인스턴스를 통해 호출됩니다.

 

struct MyStruct {
    var value: Int

    func myMethod() {
        // 메소드 구현
        // value 속성에 접근 가능
    }}

 

메소드를 호출하기 위해 구조체의 인스턴스를 생성해야 합니다.
생성된 인스턴스를 통해 메소드를 호출할 수 있습니다.

 

var myInstance = MyStruct(value: 10)  // 구조체 인스턴스 생성
myInstance.myMethod()  // 메소드 호출

 

메소드는 구조체의 속성에 접근하거나 조작하는 데 사용될 수 있으며, 필요에 따라 반환 값을 가질 수도 있습니다.

 

struct Rectangle {
    var width: Double
    var height: Double

    func calculateArea() -> Double {
        return width * height
    }}
    var rect = Rectangle(width: 5.0, height: 3.0)
    let area = rect.calculateArea()  // 메소드 호출 및 반환 값 사용
    print(area)  // 출력: 15.0

 

이상으로!

이번 포스팅은 구조체에 대해 더 자세히 알아보는 시간이었습니다.

 

꾸벅

 

728x90
반응형
LIST

'Swift 이론' 카테고리의 다른 글

Swift 기초 문법 - 별칭/typealias, Set  (0) 2024.01.23
Swift 기초문법 - 프로토콜  (0) 2024.01.23
Swift 기초문법 - 에러  (0) 2024.01.23
Swift 기초문법 - 파이널 클래스  (2) 2024.01.23
Swift 기초문법 - 딕셔너리  (2) 2024.01.23