[Swift] class

임클·2023년 1월 11일
0

Swift

목록 보기
21/37
post-thumbnail

class

struct와 비교


struct Person {
    var name : String
    let age : Int
}

class PersonClass {
    var name : String
    let age : Int
    init(name : String , age : Int){
        self.name = name
        self.age = age
    }
}

struct MyClass: View {
    
    @State var nickName : String = "None"
    
    var body: some View {
        VStack{
            Text(nickName)
            
            Button{
                var yimkeul = Person(name : "Yimkeul" , age : 25)
                var fakeYimkeul = yimkeul
                yimkeul.name = "Yimkeul2"
                fakeYimkeul.name = "Yimkeul3"
                nickName = yimkeul.name
                
                
            } label :{
                Text("Hit")
            }
            
        }
    }
}

결과는 Yimkeul2


struct Person {
    var name : String
    let age : Int
}

class PersonClass {
    var name : String
    let age : Int
    init(name : String , age : Int){
        self.name = name
        self.age = age
    }
}

struct MyClass: View {
    
    @State var nickName : String = "None"
    
    var body: some View {
        VStack{
            Text(nickName)
            
            Button{
                var yimkeul = PersonClass(name : "Yimkeul" , age : 25)
                var fakeYimkeul = yimkeul
                yimkeul.name = "Yimkeul2"
                fakeYimkeul.name = "Yimkeul3"
                nickName = yimkeul.name
                
                
            } label :{
                Text("Hit")
            }
            
        }
    }
}

결과는 Yimkeul3

클래스를 선언한 변수는 주소값을 가지고 있고, 주소값을 전달하기 때문에 값이 변경되면 같은 주소값을 가진 변수도 동시에 변경이 된다.
struct는 아님

profile
iOS를 공부하는 임클입니다.

0개의 댓글