IOS개발: SWIFT/2. 기본 문법 마스터

Swift 변수와 상수: var, let 키워드, 타입 추론, 형 변환

_Blue_Sky_ 2024. 9. 12. 14:35
728x90
728x90

Swift에서 변수와 상수는 프로그램 실행 중 값을 저장하고 사용하기 위한 기본적인 요소입니다. 이 둘의 차이점과 함께, Swift에서 변수와 상수를 다룰 때 자주 사용되는 키워드, 타입 추론, 형 변환에 대해 자세히 알아보겠습니다.

1. 변수 (var) vs. 상수 (let)

  • 변수 (var): 값을 변경할 수 있는 저장 공간입니다. 프로그램 실행 중에 값을 여러 번 할당하고 변경할 수 있습니다.
  • 상수 (let): 한 번 값을 할당하면 변경할 수 없는 저장 공간입니다. 값이 변경되지 않도록 보장해야 할 때 사용합니다.

예시:

var name = "홍길동" // 변수: 값을 변경할 수 있음
name = "김철수"

let age = 30 // 상수: 값을 변경할 수 없음
// age = 31 // 컴파일 에러 발생
 

2. 타입 추론 (Type Inference)

Swift는 타입 추론 기능을 지원하여, 변수나 상수를 선언할 때 타입을 명시하지 않아도 컴파일러가 초기화된 값을 보고 자동으로 타입을 유추합니다.

var num = 42 // 컴파일러는 num이 Int 타입임을 추론
let pi = 3.14159 // 컴파일러는 pi가 Double 타입임을 추론
 
 

3. 타입 어노테이션 (Type Annotation)

타입 추론 기능을 사용하지 않고, 명시적으로 타입을 지정하고 싶을 때 타입 어노테이션을 사용합니다.

var greeting: String = "Hello, world!"
let count: Int = 42
 

4. 형 변환 (Type Casting)

다른 타입의 값을 다른 타입으로 변환하는 것을 형 변환이라고 합니다. Swift에서는 안전한 형 변환을 위해 as?as! 연산자를 제공합니다.

  • as?: 안전한 형 변환으로, 변환이 가능하면 변환된 값을 반환하고, 불가능하면 nil을 반환합니다.
  • as!: 강제 형 변환으로, 변환이 불가능하면 런타임 에러가 발생합니다.
let intValue = 42
let doubleValue = Double(intValue) // Int를 Double로 변환

let anyValue: Any = "Hello"
if let stringValue = anyValue as? String {
    print(stringValue) // "Hello" 출력
} else {
    print("String이 아닙니다.")
}
 

5. 변수와 상수 사용 시 주의사항

  • 상수는 한 번만 값을 할당: 상수는 한 번 값을 할당한 후에는 변경할 수 없습니다.
  • 타입 안전성: Swift는 타입 안전성을 강조하기 때문에, 서로 다른 타입의 값을 직접 할당할 수 없습니다.
  • 옵셔널 타입: 값이 없을 수도 있는 경우를 나타내기 위해 옵셔널 타입을 사용합니다. 옵셔널 바인딩을 통해 안전하게 값을 추출할 수 있습니다.

6. 실제 코드 예시

var name = "Apple" // 변수 선언
let pi = 3.14159 // 상수 선언

// 타입 추론
var age = 25 // Int 타입으로 추론
let isStudent = true // Bool 타입으로 추론

// 형 변환
let doubleValue: Double = Double(age) // Int를 Double로 변환

// 옵셔널 타입
var optionalString: String? = "Hello"
print(optionalString ?? "값이 없습니다") // 옵셔널 바인딩

// 배열
var numbers = [1, 2, 3]
numbers.append(4) // 배열에 값 추가

// 딕셔너리
var person: [String: String] = ["name": "홍길동", "age": "30"]
print(person["name"] ?? "이름 없음")
 

결론

Swift의 변수와 상수는 타입 안전성과 강력한 타입 추론 기능을 통해 안정적이고 효율적인 코드 작성을 지원합니다. 변수와 상수의 개념을 확실히 이해하고, 적절하게 사용하여 깔끔하고 가독성이 좋은 Swift 코드를 작성할 수 있도록 노력해야 합니다.

728x90
728x90