[Swift] Class, Struct, EnumLanguage/Swift2022. 12. 19. 21:34
Table of Contents
좀 더 명확하게 이해하고 제대로 쓰기 위해서 공부
Class
전통적인 OOP 관점에서의 클래스
단일상속
(인스턴스/타입) 메서드
(인스턴스/타입) 프로퍼티
참조 타입
Apple 프레임워크 대부분의 큰 뼈대는 모두 클래스로 구성
Struct
상속 불가
(인스턴스/타입) 메서드
(인스턴스/타입) 프로퍼티
값 타입
Swift 대부분의 큰 뼈대는 모두 구조체로 구성
Enum
다른 언어의 열거형과는 많이 다른 존재
상속 불가
(인스턴스/타입) 메서드
(인스턴스/타입) 연산 프로퍼티
값 타입
구조체의 사용은 ❓
하나의 데이터타입으로 표현할 때
참조가 아닌 복사를 원할 때
자신이 다른 타입을 상속받을 필요가 없을 때
Value Type
데이터를 전달할 때 값을 복사하여 전달
Reference Type
데이터를 전달할 때 값의 메모리 위치를 전달
다양한 Initialization
struct Fahrenheit {
var temperature: Double
init() {
temperature = 32.0
}
}
var f = Fahrenheit()
print("The default temperature is \(f.temperature)° Fahrenheit")
// Prints "The default temperature is 32.0° Fahrenheit"
/* 위 코드와 동일하게 사용가능
struct Fahrenheit {
var temperature = 32.0
}
*/
struct Color {
let red, green, blue: Double
init(red: Double, green: Double, blue: Double) {
self.red = red
self.green = green
self.blue = blue
}
init(white: Double) {
red = white
green = white
blue = white
}
}
let magenta = Color(red: 1.0, green: 0.0, blue: 1.0)
let halfGray = Color(white: 0.5)
class SurveyQuestion {
let text: String
var response: String?
init(text: String) {
self.text = text
}
func ask() {
print(text)
}
}
let beetsQuestion = SurveyQuestion(text: "How about beets?")
beetsQuestion.ask()
// Prints "How about beets?"
beetsQuestion.response = "I also like beets. (But not with cheese.)"
For class instances, a constant property can be modified during initialization only by the class that introduces it. It can’t be modified by a subclass.
클래스 인스턴스의 경우, 상수 프로퍼티는 초기화 중에 수정할 수 있습니다.
struct Size {
var width = 0.0, height = 0.0
}
let twoByTwo = Size(width: 2.0, height: 2.0)
기본 값이 있는 속성의 값을 생략할 수 있습니다.
상속과 관련된 초기화는 추가할 예정
참고 사이트 : 링크
'Language > Swift' 카테고리의 다른 글
[Swift]UIAlertController (0) | 2023.01.11 |
---|---|
[Swift] Unit Test (0) | 2023.01.10 |
[Swift] Firebase database 설명, 선택 그리고 설정 (0) | 2022.12.06 |
[Swift] set size and position for view(CGRect, AutoLayout) (0) | 2022.12.01 |
[Swift] Image 앨범에서 불러오기 & 정보 location 등 불러오기 (UIImagePickerController, PHPickerViewController) (0) | 2022.11.24 |
@jaewpark :: 코스모스, 봄보다는 늦을지언정 가을에 피어나다
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!