-
Swift 정리#1iOS/Mac 2014. 8. 4. 14:37
The Swift Programming Language.pdf 문서를 정리한 것입니다.
간단하게 먼저 정리하고
추후 Objective-c와 비교도 따로 정리하여 볼 생각입니다.
Welcome to Swift
The Basic
특징
C/Objective-C의 모든 타입 제공.
참조방식
튜플tuple 이라는 새로운 타입.
값이 없는 경우 nil값을 가지는데 객체형만 되는 Objective-C와 달리 모든 타입이 가질 수 있음.
상수, 변수
var myVariable = 42 // 변수
let myConstant = 42 // 상수
이름 뒤에 콜른(:)으로 타입 명시적으로 지정가능
var explicitDouble:Double = 70
변수명
변수명으로 유니코드 문자 사용가능.
예약어를 변수명으로 사용하고 싶으면 back tick으로 감싼다.
let 이름 = “홍길동"
let `for` = 23
변수의 출력
var name = “Ted”
println(name) // prints “Ted”
문자열 안에서 변수 처리(\)
let apples = 3
let oranges = 5
let appleSummary = "I have \(apples) apples."
let fruitSummary = "I have \(apples + oranges) pieces of fruit." // 표현식도 가능
주석
//
/* 블럭 주석
입니다.
*/
세미콜른 Semicolons
문장 끝 문자가 없어서 한줄에 보통 하나의 문장이 오나 여러 명령을 쓰고 싶으면 세미콜른으로 구분.
정수 Integers
8, 16, 32, 64bit형태의 정수형 제공
UInt8, Int, Int8, UInt, Int32, UInt32, Int64, UInt64최대 최소값
.max, .min
let maxInt = Int.max
실수 Flaoting-Point Numbers
Double: 64-bit
Float: 32-bit
타입 안정과 타입 추측
컴파일 시점에 타입 체크
실수형 타입은 항상 Double로 간주.
실수형과 정수형이 합쳐지면 Double로 간주됨.
let anotherPi = 3 + 0.14159
// anotherPi는 Double형.
숫자표현 Numeric Literals
let decimalInteger = 17
let binaryInteger = 0b1001 // 17의 2진수 표기
let octalInteger = 0o21 // 17의 8진수 표기
let hexadecimalInteger = 0x11 // 17의 16진수 표기
지수표기
1.25e2 = 1.25 x 102 = 125.0
1.25e-2 = 1.25 x 10-2 = 0.0125
16진수 지수표기
0xFp2 = 15 x 22 = 60.0
0xFp-2 = 15 x 2-2 = 3.75
자릿수 표기
가독성을 위해 0나 _ 를 포함할 수 있다.
let paddedDouble = 000123.456
let oneMillion = 1_000_000
let justOverOneMillion = 1_000_000.000_000_1
숫자 타입변환
정수변환
let twoThousand: UInt16 = 2_000
let one: UInt8 = 1
let twoThousandAndOne = twoSausand + UInt16(one)// 정수 - 실수정수 실수 변환
let three = 3
let pointOneFourOneFiveNine = 0.14159
let pi = Double(three) + pointOneFourOneFiveNine// pi Double형
let integerPi = Int(pi) // 다시 정수로.
타입 별명 Type Aliases
typealias RecordNo = UInt16
var maxRecordNo = RecordNo.max불린
true/false
if 조건절에는 boolean값만 사용. integer 사용하면 컴파일 오류.
튜플 Tuples
간단하게 값들을 그룹핑할 때 유용.
let http404Error = (404, “Not Found”)
let http404Error = (statusCode:200, description:“OK”)
println(http404Error.statusCode) // 200튜플 값 분해
let (justTheStatusCode, _) = http404Error
println(“The status code is \(justTheStatusCode)”)
// print “The status code is 404”
조건부변수 Optionals
값을 가질 수도 있고 값을 가지지 않을 수(nil)도 있음.
C/Objective-C에 유사한 개념이 있으나 객체에 한정되어 있음. Swift에서는 모든 타입에서 가능.
let possibleNumber = “123”
let convertedNumber = possibleNumber.toInt()
//convertedNumber는 조건부 변수가 됨. 타입은 ‘Int?’ 혹은 ‘optional Int’.강제 Forced Unwrapping
느낌표(!)를 변수명 뒤에 붙여 값이 nil일 수 있는 것 알지만 이 상황에서는 nil이 아닌게 확실하다고 지시함.
if convertedNum{
println(“\(possibleNum) has an integer value of \(convertedNum!)”)
}else{
println(“\(possibleNum) 은 변환될 수 없음")
}Optional Binding
if let <상수명> = <어떤 조건형식> {
<구문>
}조건을 만족할 때만 상수가 할당되고 구문을 수행함.
if let actualNum = possibleNum.toInt()
{
println(“\(actualNum) is integer”)
}nil
조건부 변수를 선언하고 값이 없음을 설정.
var serverResponseCode: Int? = 404
// 조건부 변수 선언
serverResponseCode = nil
// 값이 없음
조건부 변수/상수 가 아닌 경우에 nil을 할당할 수 없음.
(계속)...
반응형