본문 바로가기

프로그래밍 [KOR]/Swift

(27)
Swift의 옵셔널 추출 1. 옵셔널 추출 •옵셔널에 들어있는 값을 사용하기 위해 꺼내오는 것 2. 옵셔널 방식 •옵셔널 바인딩 1. nil 체크 + 안전한 추출2. 옵셔널 안에 값이 들어있는지 확인하고 값이 있으면 값을 꺼내옵니다3. if-let 방식 사용 123456789101112131415161718192021222324252627282930313233343536373839404142434445func printName(_ name: String) { print(name)} var myName: String? = nil // printName(myName)// 전달되는 값의 타입이 다르기 때문에 컴파일 오류발생 if let name: String = myName { printName(name)} else { print("..
Swift의 옵셔널 1. 옵셔널의 뜻 •값이 있을 수도, 없을 수도 있음을 표현 •nil이 할당될 수 있는지 없는지 표현 1234567891011// optionalParam에 nil이 할당될 수 있음func funciton(optionalParam:Int?) { // ....} // optionalParam에 nil이 할당될 수 없음func function(optianlParam:Int) { // ....} function(optionalParam: nil)cs 2. 옵셔널을 쓰는 이유 •명시적 표현1. nil의 가능성을 코드만으로 표현가능2. 문서/주석 작성 시간 절약 •안전한 사용1. 전달받은 값이 옵셔널이 아니라면 nil 체크를 하지 않고 사용가능2. 예외 상황을 최소화 하는 안전한 코딩3. 효율적 코딩 3. 옵셔널..
Swift의 반복문 •for-in•while•repeat-while 1. for-in 구문 •기존 언어의 for-each 구문과 유사 •Dictionary의 경우 이터레이션(반복) 아이템으로 튜플이 들어옴 •for-in 구문 기본 형태 123for item in items { /* 실행 구문 */}cs •for-in 구문의 사용 1234567891011var integers = [1, 2, 3]let people = ["jinun": 10, "eric": 15, "mike": 12] for integer in integers { print(integer)} // Dictionary의 item은 key와 value로 구성된 튜플 타입임for (name, age) in people { print("\(name): \(age)"..
Swift의 조건문 •if-else•switch 1. if-else 구문 •if-else 구문의 기본 형태 •if 만 단독으로 사용해도 되고, else, else if 와 조합해서 사용 가능 •if 뒤의 조건 값에는 Bool 타입의 값만 위치해야 함 •조건을 감싸는 소괄호는 선택사항 1234567if 조건 { /* 실행 구문 */} else if 조건 { /* 실행 구문 */} else { /* 실행 구문 */}cs •if-else 의 사용 1234567891011121314let someInteger = 100 if someInteger 100 { print("100초과")} else { print("100")} // 100 // 스위프트의 조건에는 항상 Bool 타입이 들어와야 함// someInteger 는 Bool ..
Swift의 함수 고급 1. 매개변수 기본 값 •매개변수에 기본적으로 전달될 값을 미리 지정해 둘 수 있음 •기본값을 갖는 매개변수는 매개변수 목록 중 뒤쪽에 위치하는 것이 좋음 123456789101112func 함수이름(매개변수1이름: 매개변수1타입, 매개변수2이름: 매개변수2타입 = 매개변수 기본값 ...) -> 반환타입 { /* 함수 구현 */ return 반환값} func hello(friend: String, me: String = "Jinun") { print("Hello \(friend)! I'm \(me)")} // 매개변수 기본값을 가지는 매개변수는 호출시 생략 가능hello(friend: "Jason") // Hello Jason! I'm Jinunhello(friend: "Rita", me: "Lee") ..
Swift의 함수 1. 함수 선언의 기본 형태 123456789func 함수 이름(매개변수1이름: 매개변수1타입, 매개변수2이름: 매개변수2타입 ...) -> 반환타입 { /* 함수 구현 */ return 반환값} // ex)func sum(a: Int, b: Int) -> Int { return a + b}Colored by Color Scriptercs 2. 반환 값이 없는 함수 1234567891011121314func 함수이름(매개변수1이름: 매개변수1타입, 매개변수2이름: 매개변수2타입 ...) -> Void { /* 함수 구현 */ return} // ex)func showMyName(name: String) -> Void { print(name)} // 반환값이 없는 경우 Void 생략 가능func showM..
Swift의 컬렉션 타입 (Array, Dictionary, Set) •Array - 순서가 있는 리스트 컬렉션•Dictionary - '키'와 '값'의 쌍으로 이루어진 컬렉션•Set - 순서가 없고, 멤버가 유일한 컬렉션 1. Array •멤버가 순서(인덱스)를 가진 리스트 형태의 컬렉션 타입 •여러가지 리터럴 문법을 활용할 수 있어 표현 방법이 다양함 123456789101112131415161718192021222324252627282930313233343536373839// 1. Array 선언 및 생성var array: Array = Array() // 동일표현var array: Array = [Int]()var array: Array = []var array: [Int] = Array()var array: [Int] = [Int]()var array: [Int]..
Swift의 Any. AnyObject, nil •Any - Swift의 모든 타입을 지칭하는 키워드•AnyObject - 모든 클래스 타입을 지칭하는 프로토콜•nil - '없음'을 의미하는 키워드 1. Any 123456var someAny: Any = 100someAny = "글자"someAny = 321.32 // Any는 Double 타입이 아니기 때문에let someDouble: Double = someAny // 오류 발생cs 2. AnyObject 12345class MainClass {}var someAnyObject: AnyOject = MainClass() // AnyObject는 클래스의 인스턴스만 수용 가능someAnyObject = 122.12 // 오류 발생cs 3. nil •다른 언어의 null 과 유사한 표현 123456/..