전체 글
-
swift - Optional Bindingswift 2021. 1. 4. 19:31
Optional Binding OptionalExpression이 return 하는 값이 있으면 let 변수에 unwrapping된 형태의 값이 저장된다. var num: Int? = nil // Forced Unwrapping // 값이 저장되지 않았을때 강제 추출하면 err 발생 // print(num!) // 근데 이런 형식으로는 거의 작성하지 않는다. if num != nil { print(num) } if let num = num { print(num) } var str: String? = "str" guard let str = str else{ // else 블록에서는 바인딩한 상수를 인식하지 못함 str fatalError() } str num = 123 if var num = num { n..
-
swift - Optionalsswift 2021. 1. 4. 19:22
Optionals * 값이 없다는 것만 기억하면 쉽다. // 변수와 상수는 값을 읽기전에 항상 값을 가지고 있어야 한다. //let num: Int //print(num) // 값을 가지지 않아도 되는 형식! // 상수를 non-Optional로 선언 let nonOptionalNum: Int // 상수를 Optional로 선언 // nil은 추론할 형식이 없다. null과 동일 let optionalNum: Int? = nil Unwrapping Optional 타입을 출력하면 Optional()이라는 형태의 rapping이 되어 출력됨 Forced Unwrapping print(num!) // 단 값이 없는 즉, nil인 상태의 변수를 Forced Unwrapping하면 에러 발생 // num = n..
-
swift - for in 반복문swift 2021. 1. 4. 18:45
for in loop // loopConstant -> 반복상수 : 반복문 내에서 값을 변경할 수 없다. (임의의 변수) // Range -> 범위 연산자로 지정 // for index in 1 ... 10 { print(index) } // _ 문자로 생략가능 -> Wildcard pattern for _ in 1 ... 5 { print("hello") } let power = 10 var result = 1 for _ in 1 ... power { result *= 2 } result for num in stride(from: 0, to: 10, by: 2){ print(num) * stride(from, to, by) - from 부터 to까지 by씩 증가 let list = ["Apple", "..
-
swift - pattern matching operatorswift 2021. 1. 4. 18:31
pattern matching operator struct Size{ var width = 0.0 var height = 0.0 // 패턴 매칭 연산자 선언법 // ~= // 첫번째 파라미터에는 case문에 오는 범위 자료형 // 두번째 파라미터에는 switch s 요기에 s에 해당하는 struct static func ~=(left: Range, right: Size) -> Bool{ // case 1.. s의 width가 1~9안에 포함되는지를 true, false로 리턴 return left.contains(Int(right.width)) } } let s = Size(width: 10, height: 20) switch s{ case 1..