개발자 코드(Code)/Swift(문법)
Swift) 09_값타입과 참조타입
Chain X
2020. 9. 24. 16:18
728x90
반응형
import Cocoa
// 09_ 값타입과 참조타입 p.20
/*
@ Class
- 전통적인 OOP 관점에서의 클래스
- 단일 상속
- 메소드
- 프로퍼티
- 참조타입 @
@ Struct (스위프트는 Struct언어이다.)
- 다양한 형태로 사용 가능
- 상속 불가
- 메소드
- 프로퍼티
- 값 타입
- 구조체의 사용 시기
- 연관된 값들을 모아서 하나의 데이터 타입으로 선언하고 싶을 때
- 다른 객체 또는 함수등으로 전달 될 때
- 참조가 아닌 복사를 원할 때
- 자신을 상속할 필요가 없거나 상속 받을 필요가 없을 때
@ Enum (열거형)
- 상속 불가
- 메소드
- 프로퍼티
- 값 타입
- 유사한 종류의 여러 값을 유의미한 이름으로 한 곳에 모아 정리
@ Value와 Reference 차이
- Value : Data값을 전달할 때 값을 복사하여 전달
- Reference : Data값을 전달할 때 값의 메모리 위치를 전달
*/
// Class, Struct 비교 (swift에서는 Struct 사용 권장)
struct ValueType {
var property = 1
}
let firstStructInstance = ValueType()
var secondStructInstance = firstStructInstance
secondStructInstance.property = 2
print("first struct instance property : \(firstStructInstance)")
print("second struct instance property : \(secondStructInstance)")
// per by value = 서로 다른 값을 가진다.
class ReferenceType {
var property = 1
}
let firstClassReference = ReferenceType()
var secondClassReference = firstClassReference
secondClassReference.property = 2
print("first class Reference property : \(firstClassReference.property)")
print("second class Reference property : \(secondClassReference.property)")
// per by reference = 같이 변한다.
// 둘중에 하나는 잘 써야 한다.
반응형