Swift는 애플이 2014년에 발표한 프로그래밍 언어로, C와 Objective-C에 비해 간결하고, 모던하며 안전한 코드를 작성하기 위해 설계되었다.
공식 문서에 따르면 스위프트는 다음과 같은 modern programming patterns을 가지고 있다.
var myVar: Int // 변수 선언
myVar = 10 // 변수 초기화
print(myVar) // 변수 사용
let myArr : Array<Int> = [0, 1, 2]
print(myArr[2]) // 2 출력
print(myArr[3]) // Index out of range
var myInt : Int = Int.max
print(myInt)
print(myInt + 1) // 컴파일 에러
var optionalVar: Int? = nil
if let unwrapped = optionalVar {
print("Value: \(unwrapped)")
} else {
print("Value is nil")
}
class MyClass {
var name: String
init(name: String) {
self.name = name
}
}
var ref: MyClass? = MyClass(name: "Swift")
ref = nil // ref가 nil로 설정되면 MyClass 인스턴스는 메모리에서 자동으로 제거
enum MyError: Error {
case runtimeError(String) // 연관값(associated value)
}
do {
throw MyError.runtimeError("An error occurred")
} catch MyError.runtimeError(let errorMessage) {
print("Caught an error: \(errorMessage)")
} catch {
print("Unknown error occurred")
}
에러는 enum으로 선언하여 사용하게 되는데, 함수처럼 사용되는 것은 연관값이다.
또 Swift는 강력한 타입 추론과 패턴 매칭 기능이 있다.
Swift combines powerful type inference and pattern matching with a modern, lightweight syntax, allowing complex ideas to be expressed in a clear and concise manner.
2023년 6월 기준 Swift 5.9버전에 대해 기술하고 있으며, 다음 기능들은 5.9버전 이후 버전에서만 사용될 수 있다.
Opaque type은 불필요한 정보를 감춰 코드를 간결하게 만드는 방법이다.
do { try } catch { } 꼴의 문법에서의 try를 말한다. try에는 try? 옵셔널과 try! 옵셔널이 있다.
타입 추론에 따라 아래 선언을
let largeNumber = 0xffff_ffff_ffff_ffff
다음과 같이 해석한다는 것.
let largeNumber: UInt64 = 0xffff_ffff_ffff_ffff