본문 바로가기

Swift

(33)
Swift 정리 - where절 where절 사용 var temperature = 60 switch (temperature) { case 0...49 where temperature % 2 == 0: print("Cold and even") case 50...79 where temperature % 2 == 0: print("Warm and even") case 80...110 where temperature % 2 == 0: print("Hot and even") default: print("Temperature out of range or odd") } var numbers: [Int] = [1, 2, 3, 4, 5] for num in numbers where num > 2 { print(num) //3 4 5 }
Swift 정리 : switch-case문 switch-case문 switch 표현식 { case match1: 각 case문 안에 break가 자동으로 들어 있다. 구문 case match2: 구문 case match3, match4: 구문 default: 구문 } BMI switch-case문으로 구현 import Foundation let weight = 90.0 let height = 183.0 let bmi = weight / (height*height*0.0001) // kg/m*m let shortBmi = String(format: "%0.2f", bmi) var body = "" switch bmi { case 40... : body = "3단계 비만" case 30..
Swift 정리 : guard문 gaurd문 - 표현식이 거짓일 경우 실행 guardelse { // 표현식이 거짓일경우에 실행될 코드 } // 표현식이 참일 경우에 실행되는 코드는 이곳에 위치 guard문은기본적으로 특정 조건에 맞지 않을 경우에 현재의 함수나 반복문에서빠져 나갈 수 있도록하는 ‘조기 출구(early exit)’ 전략을 제공 예시 - 이렇게 gaurd문을 사용하지는 않으므로 흐름만 파악 var x = 1 while true { guard x
Swift 정리 : 제어문 Swift 3에서 사라진 문법 for 초기화;조건식;증감식{ // 실행될구문 } 대신 for-in 반복문 사용 for 상수명 in 컬렉션 또는 범위 { // 실행될 코드 } for i in 1...5 { print("안녕", terminator : " ") //안녕 안녕 안녕 안녕 안녕 } 배열의 항목 접근 let names = ["A", "B", "C", "D"] for name in names { print(name) //A B C D } dictionary의 항목 접근 let numberOfLegs = ["Spider": 8, "Ant": 6, "Dog": 4] //dictionary는 key:value형식의 배열 for (animalName, legCount) in numberOfLegs { pr..
Swift 정리 : Nil-Coalescing Operator(Nil합병연산자) Nil-Coalescing Operator(Nil합병연산자) 옵셔널 변수 ?? 일때 할당되는 값 옵셔녈 변수의 값이 nil일 때 ?? 다음 값이 들어간다. let defaultAge = 10 var age : Int? print(age) //과제:값은? var myAge = age ?? defaultAge //age가 nil이므로 ?? 뒤에 값이 할당됨 print(myAge) // 10
Swift 정리 : 연산자 연산자 swift 3부터 x++이 사라져서 x+=1을 사용해야 한다 == 연산자는 값이 같은지 비교, === 연산자는 주소가 같은지 비교 범위 연산자 • 닫힌 범위 연산자 x...y -> x에서 시작하여y로 끝나는 범위에 포함된 숫자 5...8 -> 5, 6, 7, 8 • 반 닫힌 범위 연산자 x.. x부터 시작해서 y를 제외한 범위의 숫자 3.. 3, 4, 5, 6, 7 • One-Sided Ranges 한쪽 방향 let names = ["A", "B", "C", "D"] for name in names[...2] { //A, B, C print(name) }
Swift 정리 : Optional Optional 타입 값을 반환할 때 오류가 발생할 가능성이 있는 값은 옵셔널 타입으로 감싸서 반환함 옵셔널 타입을 선언하기 위해서는 타입 선언부 뒤에 ? 를 붙임 forced unwrapping - 강제 언래핑 var x : Int? //옵셔널 정수형 변수 x 선언 var y : Int = 0 x = 15 // 초기값이 없으면 nil이 저장됨 print(x) // Optional(15) print(x!) // forced unwrapping해서 10이 나옴 // 옵셔널에 래핑된 값을 !를 붙여서 풀어줌 print(y) x = x! + 2 // 가능 -> forced unwrapping을 사용하면 가능 print(x) // Optional(17) y = x! // 가능 -> forced unwrappin..
Swift 정리 : 튜플 튜플 let myTuple = (10, 12.1, "Hi") //( )로 묶으면 튜플 -> 여러 값을 하나의 개체로 묶는것 // 투플로 묶인 개체들은 타입의 제한이 없음 var myString = myTuple.1 // 0부터 첫번째 개체 print(myString) // 12.1 let (myInt, myFloat, myString) = myTuple print(myInt, myFloat, myString) //10, 12.1, Hi // 튜플의 값을 선택적으로 추출 가능, _ 를 사용허면 그 값을무시 가능 let myTuple1 = (count: 12, length: 12.5, message: "Hello") //과제 : myTuple의 자료형 print(myTuple1.count) //12