Xcode Playground
XCode에서 Playground 프로젝트를 만들면 코드를 작성하는 즉시 결과를 확인하며 학습이 가능하다.
줄 번호 옆의 실행 버튼을 눌러 코드를 실행할 수 있다. 그때그때의 작업 결과는 오른쪽에, 콘솔 출력은 아래쪽에 표시된다.
A Swift Tour
애플에서 스위프트 입문자를 위해 제공하는 튜토리얼로, 스위프트의 가장 중요한 컨셉과 특징을 빠르게 살펴볼 수 있다.
Simple Values
let
을 사용하여 상수를 선언하고, var
를 사용하여 변수를 선언한다. 컴파일 타임에 상수 값이 할당되지 않아도 상관없지만, 정확히 한 번만 할당할 수 있다. 어떤 값이 오직 한 번 설정되어, 변하지 않고 여러 번 사용될 때 상수를 사용하여 선언한다.
var myVar = 42
myVar = 50
let myConst = 42
// myConst = 50; error
// 값을 나중에 할당하는 건 괜찮다
var myVar = 42
myVar = 50
let myConst: Int
myConst = 42
// myConst = 50; error
let implicitInteger = 70
let implicitDouble = 70.0
let explicitDouble: Double = 70
스위프트는 할당 시 오른쪽 값의 타입을 유추하여 변수의 타입으로 설정한다. 이때 암시적으로 할당한다면 70
은 Int
로, 70.0
이 Double
로 설정되지만, 명시적으로 변수 타입을 선언한다면 70
을 Double
의 값으로 할당할 수 있다.
변수의 형 변환은 절대 암시적으로 일어나지 않는다. 값을 다른 타입으로 변경해야 한다면, 명시적으로 원하는 타입의 인스턴스로 만들어주어야 한다.
let label = "The width is "
let width = 94
// let widthLabel = label + width; error
let widthLabel = label + String(width)
스위프트는 문자열을 만들 때 더욱 간단한 방법을 제공한다. 다음과 같이 역슬래쉬 이후에 괄호 안에 변수를 작성 시, 문자열로 변환된다.
let apples = 3
let oranges = 5
let appleSummary = "I have \(apples) apples."
let fruitSummary = "I have \(apples + oranges) pieces of fruit."
다음과 같이 """로 문자열을 감싸면 멀티 라인 문자열을 작성할 수 있다.
let quotation = """
I said "I have \(apples) apples."
And then I said "I have \(apples + oranges) pieces of fruit."
"""
배열과 딕셔너리는 브라켓([])을 사용하여 선언한다. 또한 [] 안에 인덱스나 키 값을 넣어 배열, 딕셔너리의 요소 값에 접근할 수 있다.
var shoppingList = ["catfish", "water", "tulips"]
shoppingList[1] = "bottle of water"
var occupations = [
"Malcolm": "Captain",
"Kaylee": "Mechanic",
]
occupations["Jayne"] = "Public Relations"
요소를 추가하면 배열의 크기는 자동으로 자라난다.
shoppingList.append("blue paint")
print(shoppingList)
빈 배열이나 딕셔너리를 만드려면 initializer를 사용하여야 한다. initializer 문법은 다음과 같다.
let emptyArray = [String]()
let emptyDictionary = [String: Float]()
이미 사용한 변수 등 타입이 유추 가능한 상태라면, 다음과 같이 빈 배열, 빈 딕셔너리를 사용할 수 있다.
shoppingList = []
occupations = [:]
'Swift' 카테고리의 다른 글
mac OS #Framework 생성, Cannot find #FUNCTION in scope error, Swift #접근제어자 와 @testable (0) | 2021.01.21 |
---|---|
#Postman 이용하여 #대부분의 데이터를 받아오는 방법! (0) | 2021.01.20 |
Objects and Classes - A Swift Tour 3일차 (0) | 2020.12.21 |
Functions and Closures - A Swift Tour 2일차 (0) | 2020.12.19 |
Control Flow - A Swift Tour 1일차 (0) | 2020.12.19 |