print("Hello, world!")
상수를 만들기 위해 let를 사용하고,
변수를 만들기 위해 var를 사용한다.
let으로 선언한 상수는 컴파일 타임에 알 필요는 없지만 반드시 한 번은 할당해야 한다.
값은 한번만 할당되지만 여러 위치에서 사용할 수 있다.
var myVariable = 42
myVariable = 50
let myConstant = 42
상수 또는 변수는 할당하려는 값과 동일한 타입이어야 한다.
하지만 항상 타입을 명시해야 하는 것은 아니다.
상수 또는 변수의 생성 시점에 값을 넣어 초기화하면 컴파일러가 타입을 유추한다.
위의 예제에서, myVariable의 초기값은 Int이므로 컴파일러는 Int로 유추한다.
초기값이 충분한 정보를 제공하지 않거나 없는 경우,
변수 뒤에 콜론으로 구분하여 타입을 지정해 주어야 한다.
let implicitInteger = 70
let implicitDouble = 70.0
let explicitDouble: Double = 70
let explicitFloat: Float = 4
값은 다른 타입의 값으로 절대 변경되지 않는다.
값을 다른 타입으로 변경해야 한다면 원하는 타입의 인스턴스를 명시적으로 만들어야 한다.
let label = "The width is "
let width = 94
let widthLabel = label + String(width)
string 안에 다른 타입 값을 포함하는 더 쉬운 방법
let apples = 3
let oranges = 5
let appleSumamry = "I have \(apples) apples"
let fruitSummary = "I have \(apples + oranges) pieces of fruit"
여러 줄의 문자열 작성 -> 쌍따옴표 3개
let quotation = """
Even though there's whitespace to the left,
the actual lines aren't indented.
Except for this line.
Double quotes (") can appear without being escaped.
I still have \(apples + oranges) pieces of fruit.
"""
대괄호를 사용하여 배열과 딕셔너리를 생성하고 대괄호에 인덱스 또는 키를 작성하여 해당 요소에 접근 가능
var fruits = ["strawberries", "limes", "tangerines"]
fruits[1] = "grapes"
var occupations = [
"Malcolm": "Captain",
"Kaylee": "Mechanic",
]
occupations["Jayne"] = "Public Relations"
위의 예제에서 볼 수 있듯 마지막 element 뒤에 쉼표가 허용된다.
배열은 요소를 추가함에 따라 자동으로 크기가 늘어난다.
fruits.append("blueberries")
print(fruits)
// Prints "["strawberries", "grapes", "tangerines", "blueberries"]"
빈 배열 또는 딕셔너리 작성 시 [], [:]을 사용한다.
fruits = []
occupations = [:]
새로운 변수 또는 타입 정보가 없는 곳에 빈 배열 또는 빈 딕셔너리 선언 시 타입을 명시해야 한다.
let emptyArray: [String] = []
let emptyDictionary: [String: Float] = [:]