🔥 상수와 변수

543자
7분

Swift에서 상수를 선언할 때는 let을, 변수를 선언할 때는 var를 사용하는데요. 상수의 값은 컴파일 시점에 알려질 필요는 없지만, 반드시 한 번은 값을 할당해야 해요. 이는 한 번 결정된 값을 여러 곳에서 사용할 때 상수를 활용할 수 있다는 의미랍니다.

var myVariable = 42 // 변수 myVariable을 선언하고 42로 초기화했어요.
myVariable = 50 // 변수 myVariable의 값을 50으로 변경했죠.
let myConstant = 42 // 상수 myConstant를 선언하고 42로 초기화합니다.
swift

상수나 변수는 할당하려는 값과 같은 타입이어야 하는데요. 하지만 타입을 항상 명시적으로 작성할 필요는 없어요. 상수나 변수를 생성할 때 값을 제공하면 컴파일러가 타입을 추론할 수 있거든요. 위의 예제에서 컴파일러는 myVariable의 초기값이 정수이므로 myVariable이 정수형임을 추론한답니다.

만약 초기값이 충분한 정보를 제공하지 않거나 초기값이 없다면, 변수 뒤에 콜론으로 구분하여 타입을 명시해야 해요.

let implicitInteger = 70 // 컴파일러는 implicitInteger가 Int형임을 추론하네요.
let implicitDouble = 70.0 // 컴파일러는 implicitDouble이 Double형임을 추론합니다.
let explicitDouble: Double = 70 // explicitDouble을 Double형으로 명시적으로 선언했어요.
swift

값은 절대 다른 타입으로 암묵적으로 변환되지 않아요. 값을 다른 타입으로 변환해야 한다면, 원하는 타입의 인스턴스를 명시적으로 만들어야 합니다.

let label = "The width is " // label 상수를 문자열로 초기화했네요.
let width = 94 // width 상수를 정수로 초기화했어요.
let widthLabel = label + String(width) // width를 문자열로 변환하여 label에 이어 붙였습니다.
swift

문자열에 값을 포함시키는 더 간단한 방법도 있어요. 값을 괄호 안에 작성하고, 괄호 앞에 백슬래시(\\)를 작성하는 거예요. 예를 들면 이렇게요.

let apples = 3 // apples 상수를 정수 3으로 초기화했습니다.
let oranges = 5 // oranges 상수를 정수 5로 초기화했네요.
let appleSummary = "I have \(apples) apples." // "\(apples)"는 apples 값으로 대체되요.
let fruitSummary = "I have \(apples + oranges) pieces of fruit." // "\(apples + oranges)"는 8로 대체됩니다.
swift

여러 줄에 걸친 문자열을 작성하려면 세 개의 큰따옴표(""")를 사용하는데요. 각 따옴표 라인의 시작 부분 들여쓰기는 닫는 따옴표의 들여쓰기와 일치하는 한 제거돼요. 이렇게 말이에요.

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.
        """
swift

대괄호([])를 사용하여 배열과 딕셔너리를 생성하고, 대괄호 안에 인덱스나 키를 작성하여 요소에 접근할 수 있어요. 마지막 요소 뒤에는 쉼표가 허용된답니다.

var fruits = ["strawberries", "limes", "tangerines"] // fruits 배열을 초기화했어요.
fruits[1] = "grapes" // fruits 배열의 두 번째 요소를 "grapes"로 변경했네요.
 
var occupations = [
    "Malcolm": "Captain",
    "Kaylee": "Mechanic",
] // occupations 딕셔너리를 초기화했습니다.
occupations["Jayne"] = "Public Relations" // occupations 딕셔너리에 새로운 키-값 쌍을 추가했어요.
swift

배열은 요소를 추가할 때마다 자동으로 커져요.

fruits.append("blueberries") // fruits 배열에 "blueberries"를 추가했네요.
print(fruits)
// ["strawberries", "grapes", "tangerines", "blueberries"] 출력되요.
swift

비어 있는 배열이나 딕셔너리를 작성할 때도 대괄호를 사용한답니다. 배열은 [], 딕셔너리는 [:]로 작성하면 돼요.

fruits = [] // fruits를 빈 배열로 초기화했어요.
occupations = [:] // occupations를 빈 딕셔너리로 초기화했습니다.
swift

새로운 변수에 빈 배열이나 딕셔너리를 할당하거나 타입 정보가 없는 다른 곳에 할당할 때는 타입을 명시해야 해요.

let emptyArray: [String] = [] // 빈 문자열 배열로 선언했네요.
let emptyDictionary: [String: Float] = [:] // 빈 [String: Float] 딕셔너리로 선언했습니다.
swift

이렇게 Swift에서는 letvar를 사용해 상수와 변수를 선언하고, 타입 추론과 타입 명시를 통해 다양한 값을 할당할 수 있어요. 또한 문자열 보간법으로 문자열에 값을 쉽게 포함시킬 수 있고, 대괄호를 사용해 배열과 딕셔너리를 생성하고 다룰 수 있답니다. 이 기본적인 개념들을 익히면 Swift 코드를 더욱 효과적으로 작성할 수 있게 될 거예요!