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는 아님