[Swift] (기초) Sturct / 구조체
2021. 7. 16. 21:58ㆍ🍏/Swift 기초 공부
구조체
구조체는 값 타입이며 다중상속 가능
import Swift
//MARK: - 정의
//struct 이름{
//
//}
struct Sample {
var mutableProperty: Int = 100 // 가변 프로퍼티
let immutableProperty: Int = 100 // 불편 프로퍼티
static var typeProperty: Int = 100 // 타입 프로퍼티
// 인스턴스 메서드
func instanceMethod() {
print("instace method")
}
// 타입 메서드
static func typeMethod(){
print("type method")
}
}
//MARK: 구조체 사용
// 가변 인스턴스
var mutable: Sample = Sample()
mutable.mutableProperty = 200
/* mutable.immutableProperty = 200 */ //가변 인스턴스 안의 immutableProperty 값 변경 불가능
// 불변 인스턴스
let immutable: Sample = Sample()
/* immutable.mutableProperty = 200
immutable.immutableProperty = 200 */ //불변 인스턴스 안의 프로퍼티가 가변이여도 값 변경 불가능
// 타입 프로퍼티 및 메서드
Sample.typeProperty = 300
Sample.typeMethod() // type method
/* mutable.typeProperty = 400
mutable.typeMethod() */ // 타입프로퍼티 & 타입 메서드 사용 불가능
//MARK: - 학생 구조체
struct Student {
var name: String = "unknown"
var `class`: String = "Swift"
static func selfIntroduce(){
print("학생 타입 입니다.")
}
func selfIntroduce(){
print("저는 \(self.class)반 \(name)입니다 ")
}
}
Student.selfIntroduce() // 학생 타입입니다.
var chan: Student = Student()
chan.name = "chan"
chan.class = "스위프트"
chan.selfIntroduce() //저는 스위프트반 찬입니다.
let kanna: Student = Student()
// 불변 인스턴스이므로 프로퍼티 값 변경 불가
// 컴파일 오류 발생
//kanna.name = "kanna"
kanna.selfIntroduce() //저는 swift반 unknown입니다
'🍏 > Swift 기초 공부' 카테고리의 다른 글
[Swift] (기초) Enum / 열거형 (0) | 2021.07.16 |
---|---|
[Swift] (기초) Class / 클래스 (0) | 2021.07.16 |
[Swift] (기초) Optional Unrapping / 옵셔널 언래핑 (0) | 2021.07.16 |
[Swift] (기초) Optional / 옵셔널 (0) | 2021.07.13 |
[Swift] (기초) 조건문 / 반복문 (0) | 2021.07.13 |