반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
Tags
- 혁신금융서비스
- frontend
- Ai
- JavaScript
- 백준
- 자료구조
- dfs
- React #Web #프런트엔드
- BFS
- algorithms
- IOS
- 신한투자증권
- 알고리즘
- Swift
- JS
- algoritms
- 일임형
- SSAFY
- 큐
- BAEKJOON
- MacOS
- 로보어드바이저
- 자문형
- 자바스크립트
- programmers
- 스택
- 모던자바스크립트
- Python
- Algorithm
- 파이썬
Archives
- Today
- Total
Step by Step
Swift 기본문법(2) 옵셔널 바인딩, 초기화 본문
반응형
옵셔널 체인은 옵셔널 타입으로 정의된 값이 하위 프로퍼티나 메서드를 가지고 있을 때 if구문을 사용하지 않고 간결하게 사용할 수 있다.
//만약 Human 구조체를 다른 구조체나 클래스가 프로퍼티로 사용한다면
//코드가 훨씬 복잡해진다.
struct Company {
var ceo : Human?
var companyName : String?
}
var startup : Company? = Company(ceo:
Human(name: "정찬진", man: false), companyName:"멀티캠퍼스")
//옵셔널 타입을 해제하려면
if let company = startup {
if let ceo = company.ceo {
if let name = ceo.name {
print("대표이사의 이름은 \(name)입니다")
}
}
}
아래와 같이 옵셔널 체인을 (?.)을 사용하면 간결해진다.
startup이 nil이거나 ceo가 cil이거나 name이 nil이면 바로 빠져나간다.
3개의 값이 전부 nil이 아니면 if구문의 내부 코드가 실행된다.
if let name = startup?.ceo?.name {
print("대표이사의 이름은 \(name)입니다")
}
초기화(init)
다른 언어에서는 생성자 메서드라고 부르는 부분을 swift에서는 init()메서드로 초기화 작업을 한다.
초기화 작업 -> 인스턴스가 가지고 있는 모든 저장형 프라퍼티들의 최초값을 설정해서 새로운 프라퍼티를 사용할 수 있게함.
class Employee
{
var name:String?
var title:String?
var phoneNumber:String?
//지정 초기화 메소드
init(name:String) {
self.name= name
}
//편의 초기화 메소드
convenience init(name:String, title:String,
phone:String) {
self.init(name:name)
self.title= title
self.phoneNumber= phone
}
}
반응형
'ios 앱 개발' 카테고리의 다른 글
Delegate 패턴 (0) | 2025.03.26 |
---|---|
ViewController 간 Data 교환 (0) | 2025.03.26 |
Swift(Segueway 화면전환) (2) | 2025.03.26 |
Swift 기본문법(3) (1) | 2025.03.25 |
Swift 기본 문법 정리 (0) | 2025.03.24 |