Swift

[SWIFT] 기초문법 뽀개기 -클래스 vs 스트럭트

Eunice99 2022. 9. 18. 12:21
  • 소스코드
import UIKit

// 데이터 모델을 담는 방식 : 클래스 혹은 스트럭트

// 스트럭트
// 유투버 (데이터) 모델 - struct / 구조체
struct YouTubeStruct {
    var name : String
    var subscribarsCount : Int
}

var Eunice = YouTubeStruct(name : "밍깅이", subscribarsCount: 24)

var EuniceClone = Eunice // Eunice를 복사해서 EuniceClone을 만들었다. (값 복사)

print("값 넣기 전 EuniceClone.name : \(EuniceClone.name)")

EuniceClone.name = "호롤로"

// 값 복사이므로 둘의 값은 다름.
print("값 넣은 후 EuniceClone.name : \(EuniceClone.name)")
print("값 넣은 후 Eunice.name : \(Eunice.name)")

// 클래스 (생성자를 만들어줘야함)
class YouTubeClass {
    var name : String
    var subscribarsCount : Int
    
    // init으로 매개변수를 가진 생성자 메소드를 만들어야 매개변수를 넣어서 그 값을 가진 객체(object)를 만들 수 있다.
    init(name : String, subscribarsCount:Int) { // 생성자 (메모리에 올린다.)
        self.name = name // 내(YouTubeClass)가 가지고있는 이름을 외부에서 넘어온 name으로 넣을것이다.
        self.subscribarsCount = subscribarsCount
    }
}

var minkyung = YouTubeClass(name : "밍깅이", subscribarsCount: 24)

var minkyungClone = minkyung

print("값 넣기 전 minkyungClone.name : \(minkyungClone.name)")

minkyungClone.name = "호롤롤롤로"

// 둘의 값은 같음.
print("값 넣은 후 minkyungClone.name : \(minkyungClone.name)")
print("값 넣은 후 minkyung.name : \(minkyung.name)")

// 스트럭트는 다른 종이에 복사한 것과 같음. (원래 종이에 영향이 가지않음)
// 클래스는 서로 연결이 되어있음. (원래 종이에 영향이 감)
  • 출력

  • 참고

정리를 해보려고했는데,,,너무 정리가 잘되어있어서,,,참고참고!!

https://icksw.tistory.com/256

 

[Swift] Class와 Struct의 차이점?

안녕하세요 Pingu입니다.🐧 오늘은 iOS 개발에 쓰이는 Swift 언어에서 Class, Struct의 차이점이라는 주제를 가지고 글을 써보려고 합니다. iOS 개발자로 면접을 준비하다 보면 Class, Struct의 차이점이라

icksw.tistory.com