일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- ios
- Swift
- 차이
- Self
- 자바
- 클로저
- 이스케이핑
- 풀이
- 옵셔널
- Subject
- 프래그먼트
- RxSwift
- weak
- 스위프트
- observable
- rx
- 안드로이드
- 구조체
- 알고리즘
- 테스크
- 백준
- async
- 연산자
- 프로그래머스
- 생명주기
- 리스트뷰
- View
- concurrency
- 해시
- 서브스크립트
- Today
- Total
목록전체 글 (177)
study record
옵셔널은 단어 뜻 그대로 값이 있을 수도, 없을 수도 있음을 나타내는 표현이다. 옵셔널을 읽을 때, 해당 변수 또는 상수에는 값이 없을 수도 있다. 즉, 변수 또는 상수가 nil일 수 있으니 사용에 주의하라는 뜻으로 받아들일 수 있다. 옵셔널 사용 옵셔널 변수 또는 상수가 아니면 nil을 할당할 수 없다. 옵셔널 변수 또는 상수는 데이터타입 뒤에 물음표(?)를 붙여 표현한다. 옵셔널을 사용하는 상황 오류 발생시 간단히 nil을 반환해서 오류가 있음을 알릴 수 있다. 매개변수를 굳이 넘기지 않아도 된다는 뜻으로 매개변수 타입을 옵셔널로 정의할 수 있다. 옵셔널은 열거형으로 구현되어 있다. 옵셔널 추출 옵셔널의 값을 옵셔널이 아닌 값으로 추출한다. 옵셔널 강제 추출 가장 간단하지만 가장 위험한 방법이다. 런..
매개변수 이름과 전달인자 레이블 함수의 매개변수 이름과 더불어 전달인자 레이블을 지정해줄 수 있다. 전달인자 레이블을 별도로 지정하면 함수 외부에서 매개변수의 역할을 좀 더 명확히 할 수 있다. func 함수 이름(전달인자 레이블 매개변수 이름: 매개변수 타입, 전달인자 레이블 매개변수 이름: 매개변수 타입) -> 반환 타입 { 실행 구문 return 반환 값 } // from, to 라는 전달인자 레이블이 있으며 // myName과 name이라는 매개변수 이름이 있는 sayHello 함수 func sayHello(from myName: String, to name:String) -> String { return "HEllo \(name) ! I'm \(myName)" } print(sayHello(fr..
반복문 for-in 구문 for 임시상수 in 시퀀스 아이템 { 실행 코드 } for i in 0...2 { print(i) } // 0 // 1 // 2 // continue 키워드를 사용하면 바로 다음 시퀀스로 건너뛴다. // 시퀀스에 해당하는 값이 필요 없다면 와일드카드 식별자(_)를 사용하면 된다. var result: Int = 1 for _ in 1..3 { result *= 10 } 구문 이름표 반복문을 제어하는 키워드(break, continue 등)가 어떤 범위에 적용되어야 하는지 애매할 때, 반복문 앞에 이름과 함께 콜론을 붙여 구문의 이름을 지정해주는 구문 이름표를 사용한다. var numbers: [Int] = [3,2,5,55] numbersLoop: for num in numbe..
switch 구문 switch 구문은 소괄호()를 생략할 수 있다. break 키워드는 선택사항이다. 즉, case내부의 코드를 모두 실행하면 switch 구문이 종료된다는 것이다. 따라서 break를 쓰지 않고 case를 연속 실행하던 트릭을 더 이상 사용하지 못한다. 스위프트에서 switch 구문의 case를 연속 실행하려면 fallthrough 키워드를 사용한다. switch 구문의 조건에서 비교될 값이 명확히 한정적인 값(열거형 값 등)이 아닌 경우에는 default를 꼭 작성해야 한다. 또한 각 case에는 범위 연산자나, where 절을 사용하여 조건을 확장할 수 있다. 여러 개의 항목을 한 번에 case로 지정해주는 것도 가능하다. case에 해당할 때 실행될 코드가 비어있으면 컴파일 오류가..