[Swift] 변수와 상수

Soomin Kim·2024년 6월 17일

Swift

목록 보기
2/12
post-thumbnail

변수(Variable)와 상수(Costant)

변수값을 변하도록 수정할 수 있는 저장공간이다.
상수값이 변하지 않는 고정된 값이다.


변수와 상수의 선언

변수와 상수는 사용하기 전에 반드시 선언이 되어야 한다.
변수var 키워드와 함께 선언하고 상수let 키워드와 함께 선언한다.

  • 변수 선언 방법
var constant: String = "차후에 변경이 가능한 변수 var"
// var 변수이름 : 타입 = 값
  • 상수 선언 방법
let constant: String = "차후에 변경이 불가능한 상수 let"
// let 변수이름 : 타입 = 값

여러개의 상수 또는 여러개의 변수를 선언할 때 콤마로 구분하여 한줄로 선언이 가능하다.

let x1 = 0.0, y1 = 0.0, z1 = 0.0
var x2 = 0.0, y2 = 0.0, z2 = 0.0

타입 명시 (Type Annotations)

상수 또는 변수를 선언할 때 저장할 수 있는 값의 종류를 명확하게 하기위해 타입 명시를 사용한다.

welcomeMessage 라는 변수에 String 값을 저장할 수 있는 변수를 나타내는 타입 명시를 제공

var welcomeMessage: String

"선언한 변수는 welcomeMessage라고 하며 이것의 타입은 String이다."


변수와 상수의 이름

상수와 변수 이름은 아래 코드와 같이 대부분의 문자를 포함할 수 있다.

let n = 3.14159 //알파벳
let 你好 = "你好世界" //한자
let 🐶🐮 = "dogcow" //유니코드

불가능 한 것

  • 공백, 수학적 기호, 화살표, 내부에서 사용하는 유니코드 스칼라 값, 또는 선과 박스를 그리는 문자를 포함할 수 없다.
  • 숫자로 시작하는 이름은 선언할 수 없다.
  • 특정 타입으로 상수 또는 변수를 선언하면 동일한 이름으로 다시 선언하거나 다른 타입의 값을 저장하도록 변경하여 선언할 수 없다.
  • 상수를 변수로 바꾸거나 변수를 상수로 바꿀 수도 없다.
  • Swift 키워드와 동일한 이름의 상수 또는 변수를 제공해야 한다면 이름을 백틱 (`)으로 묶어야 한다.

동일한 타입의 다른 값으로 이미 선언된 변수 값을 변경할 수 있다.
변수는 변경 가능 !
friendlyWelcome"Hello!" 에서 "Bonjour!"로 변경

var friendlyWelcome = "Hello!"
friendlyWelcome = "Bonjour!"
// friendlyWelcome is now "Bonjour!"

변수와 달리 상수 값은 지정된 이후에는 변경할 수 없다.
값을 변경하려고 하면 코드가 컴파일 될 때 오류가 발생한다.
상수는 변경 불가능!

let languageName = "Swift"
languageName = "Swift++"
// This is a compile-time error: languageName cannot be changed.

변수와 상수 출력

print() 함수로 상수 또는 변수의 현재 값을 출력할 수 있다.

print(friendlyWelcome)
// Prints "Bonjour!"

Swift는 긴 문자열에 상수 또는 변수의 이름을 포함하기 위해 문자열 삽입 (String interpolation)을 사용한다.
이름을 소괄호로 감싸고 여는 소괄호 전에 역슬래시를 추가해야 한다.

print("The current value of friendlyWelcome is \(friendlyWelcome)")
// Prints "The current value of friendlyWelcome is Bonjour!"

Swift에서 '굳이' 상수(let)를 만드는 이유는??

전부 다 변수(var)로 하면 편할 텐데 말이야...

Swift에서는 상수를 많이 사용한다.
변수를 사용해도 되지만 상수 사용에는 아래와 같은 두가지 장점이 있기 때문이다.

1. 실수로 값을 변경하는 일이 없다.
(실수로 변경된 경우 컴파일 오류가 나므로 컴파일시점에 알아차릴 수 있다.)

2. 컴파일러가 별도의 최적화를 진행하여 실행속도가 빨라진다.

+상수로 선언한 것의 값을 변경해야한다면 let ➜ var로만 변경하면 상수를 변수로 바꿀 수 있다.

0개의 댓글