[Swift] 변수와 상수

2021. 3. 21. 23:29Apple/Swift

변수와 상수

- 변수나 상수를 이용해 프로그램에서 사용되는 데이터를 메모리에 임시로 저장한다.
  이때 변수와 상수는 특정 데이터 타입에 해당하는 값의 이름이다.

변수

- 변수는 생성 후 데이터 값을 변경할 수 있다.

 

• 변수 생성 방법

    var [변수명]: [데이터 타입] = [값] 

 

   ※ 변수 생성 시 데이터 타입은 생략할 수 있지만,

       컴파일 시 타입을 추론해야 하므로 컴파일에 더 오랜 시간이 걸릴 수 있다.

       또한, 자칫 잘못된 타입 추론으로 인해 오류가 생기면 이 오류를 찾는데 상당한 시간이 걸릴 수도 있다.

       그러므로 타입 추론은 스위프트에 많이 익숙해졌을 때 사용하길 권장한다.

 

   • 타입 추론 : 변수 또는 상수 생성 시 타입을 생략하면, 컴파일러가 변숫값의 타입을 추론하여 타입을 지정

       - 변수 또는 상수의 실수 타입에서 타입 추론은 'Double 타입'이 지정된다.

   • 타입 지정 : 변수 또는 상수의 이름 뒤에 콜론을 붙이고 타입을 명시하는 것

// MARK: - 변수의 선언 및 사용
var name_2: String = "hyejin"
var age: Int = 20
var job = "student" // 타입 추론이 사용됨
var height = 157.5 // 변수의 실수 타입에서 타입 추론으로
print(type(of: height)) // Double 타입이 지정된다.
age = 23 // 변수이므로 값 변경이 가능
job = "iOS Programmer" // 값 변경 시 같은 타입의 값을 할당해야된다.
print("저의 이름은 \(name_2)이고, 나이는 \(age)세이며, 직업은 \(job)입니다. 또한 키는 \(height)cm입니다.")
// 출력 : 저의 이름은 hyejin이고, 나이는 23세이며, 직업은 iOS Programmer입니다. 또한 키는 157.5cm입니다.

 

상수

- 상수는 한 번 값을 설정하면 데이터 값을 변경할 수 없다.

- 상수를 사용하는 가장 중요한 이유'가독성'이다.

   왜냐하면 코드에서 값의 변화가 없다는 사실을 직관적으로 알 수 있기 때문이다.

 

   따라서 아래 두 가지의 경우는 상수로 선언하는 것이 좋다.

   ① 공식적으로 불변하는 값

let pi: Double = 3.14 // 원주율

   ② 특정 값에 의미를 부여할 때

let maxInputValue: Int = 100 // 입력받는 수의 최대 크기가 100일 때

 

• 상수 생성 방법

    let [상수명]: [데이터 타입] = [값]

 

   ※ 상수도 변수와 같이 생성 시에 데이터 타입을 생략할 수 있지만,

        타입 추론에 주의해야 하므로 타입을 지정할 것을 권장한다.

// MARK: - 상수의 선언 및 사용
let name_3: String = "hyejin"
var age_2: Int = 0
var job_2 = "iOS Programmer"
let height_2 = 157.5 // 상수의 실수 타입에서 타입 추론으로
print(type(of: height_2)) // Double 타입이 지정된다.
age_2 = 23
job_2 = "student"
print("저의 이름은 \(name_3)이고, 나이는 \(age_2)세이며, 직업은 \(job_2)입니다. 또한 키는 \(height_2)cm입니다.")
// 출력 : 저의 이름은 hyejin이고, 나이는 23세이며, 직업은 student입니다. 또한 키는 157.5cm입니다.

 

[출처 : 스위프트 프로그래밍 3판 - 야곰]

'Apple > Swift' 카테고리의 다른 글

[Swift] Xcode 퀵헬프 및 마크업 문법  (3) 2021.03.21
[Swift] 스위프트 주석 총정리  (0) 2021.03.21
[Swift] 문자열 보간법  (0) 2021.03.20
[Swift] 기본 명명 규칙  (0) 2021.03.20
[Swift] macOS에서 XCode 12 설치방법  (0) 2020.10.16