본문 바로가기

Swift

(11)
[스위프트 기초] 11. 옵셔널 추출 1. 옵셔널 추출이란? - 옵셔널에 들어있는 값을 사용하기 위해 꺼내오는 것 2. 옵셔널 방식 - 옵셔널 바인딩 1) nil 체크 + 안전한 추출 2) 옵셔널 안에 값이 들어있는지 확인하고 값이 있으면 값을 꺼내옴 3) if-let 방식 사용 * 강제 추출 - 옵셔널에 값이 들어있는지 아닌지 확인하지 않고 강제로 값을 꺼내는 방식 만약, 값이 없을 경우(nil) 런타임 오류가 발생하기 때문에 추천되지 않음
[스위프트 기초] 10. 옵셔널 1. 옵셔널 Optional - 값이 있을 수도 있고, 없을 수도 있음을 표현 - nil이 할당될 수 있는지 없는지 표현 2. 옵셔널이 필요한 이유 - 명시적 표현 nil의 가능성을 문서화 하지 않아도 코드만으로 충분히 표현 가능 문서 / 주석 작성 시간을 절약 - 안전한 사용 전달받은 값이 옵셔널이 아니라면 nil 체크를 하지 않더라도 안심하고 사용 효율적인 코딩 가능 예외 상황을 최소화하는 안전한 코딩 3. 옵셔널 문법과 선언 옵셔널 문법 = enum + generics 옵셔널 선언 옵셔널 표현 - 느낌표(!)를 이용한 암시적 추출 옵셔널 - 물음표(?)를 이용한 옵셔널
[스위프트 기초] 9. 반복문 1. for-in 구문 - 기존 언어의 for-each 구문과 유사 - Dictionary의 경우 이터레이션 아이템으로 튜플이 들어옴 for-in 구문 기본 형태 for item in items{ /* 실행 구문 */ } var integers = [1,2,3] let people = ["dingsi": 10, "ling": 15, "za": 12] for integer in integers{ print(integer) } // Dictionary의 item은 key와 value로 구성된 튜플 타입 for(name,age) in people { print(\(name): \(age)") } 2. while 구문 while 구문의 기본 형태 while 조건{ /* 실행 구문 */ } while intege..
[스위프트 기초] 8. 조건문 1. if - else 구문 - if만 단독으로 사용해도 되고, else와 else if를 조합해서 사용해도 됨 - if 뒤의 조건 값에는 Bool 타입의 값만 위치해야 함 - 조건을 감싸는 소괄호는 선택사항 if-else 구문의 기본 형태 if 조건 { /*실행 구문 */ } else if 조건 { /* 실행 구문 */ } else { /* 실행 구문 */ } * if-else의 사용 let someInteger = 100 if someInteger 100{ print("100 초과") } else { print("100" } => 100 출력 * 스위프트의 조건에는 항상 Bool 타입이 들어가야 함 if someInt..
[스위프트 기초] 7. 함수 고급 1. 매개변수 기본 값 - 매개변수에 기본적으로 전달될 값을 미리 지정해 둘 수 있음 - 기본값을 갖는 매개변수는 매개변수 목록 중 뒤쪽에 위치하는 것이 좋음 func함수이름(매개변수1이름: 매개변수1타입, 매개변수2이름: 매개변수2타입 = 매개변수 기본값...) -> 반환타입{ /* 함수 구현부 */ return 반환 값 } ex. func greeting(friend: String, me: String = "dingsi"){ print("Hello \(friend)! I'm \(me)") } * 매개변수 기본 값을 가지는 매개변수는 호출 시 생략할 수 있음 greeting(friend: "ling") => Hello ling! I'm dingsi * 매개변수 기본 값을 가지는 매개변수의 기본 값 외의..
[스위프트 기초] 6. 함수 기본 함수 function 1. 함수 선언의 기본 형태 func 함수 이름(매개변수1이름 : 매개변수1타입, 매개변수2이름: 매개변수2타입 ...) -> 반환 타입 { /* 함수 구현부 */ return 반환 값 } ex. // 함수 이름 : sum, 매개변수1 = a 타입 int , 매개변수2 = b 타입 int, 반환타입 = int func sum(a: Int, b: Int) -> Int{ return a+b } 2. 반환 값이 없는 함수 void func 함수 이름(매개변수1이름: 매개변수1타입, 매개변수2이름: 매개변수2타입 ...) -> Void{ /* 함수 구현부 */ return } ex. func printMyName(name: String) -> Void{ print(name) } * 반환 값..
[스위프트 기초] 5. 컬렉션타입(Array, Dictionary, Set) 1. Array - 멤버가 순서(인덱스)를 가진 리스트 형태의 컬렉션 타입 - 여러 가지 리터럴 문법을 활용할 수 있어 표현 방법이 다양함 // Array선언 및 생성 var integers: Array = Array() + 위와 동일한 표현 var integers: ArrayMInt> = [Int]() var integers: Array = [] var integers: [Int] = Array() var integers: [Int] = [Int]() var integers: [Int] = [] var integers = [int]() // 멤버 추가 append integers.append(1) integers.append(100) // 오류 발생 - Int 타입이 아니므로 멤버로 추가 X integ..
[스위프트 기초] 4. Any, AnyObject, nil 1. Any - Swift의 모든 타입을 지칭하는 키워드 데이터 타입 위치에 들어갈 수 있음 모든 타입을 수용할 수 있다는 의미 * var someAny: Any = 100 someAny = "어떤 타입도 수용 가능합니다" someAny = 123.12 //오류 발생 let someDouble: Double = someAny => Any 타입인 자료를 Double 타입인 자료에 넣을 수 없음 (명시적 타입 변환을 해주어야 함.) 2.AnyObject - 모든 클래스 타입을 지칭하는 프로토콜 클래스 인스턴스만 넣을 수 있음 * class SomeClass {} var someAnyObject: AnyObject = SomeClass() //오류 발생 someAnyObject = 123.12 => AnyOb..