let && var

개요

C 처럼 Swift는 저장할 수 있고 값을 참조하는 식별가능한 이름인 변수를 사용하고 있습니다.

Swift는 또한 값을 바꿀 수 없는 변수를 광범위하게 사용할 수 있습니다.

이것은 상수라고 불려지며 C의 상수보다 훨씬 더 강력합니다.

Swift에서 상수는 값을 변경할 필요가 없는 작업을 할때 코드를 안전하고 명확하게 만들 수 있습니다.

https://docs.swift.org/swift-book/LanguageGuide/TheBasics.html

정의

상수와 변수는 사용하기 전에 선언되어야 합니다.

상수는 let 변수는 var 키워드로 선언합니다.

let maximumNumberOfLoginAttempts = 10
var currentLoginAttempt = 0

[Note]
만약 var로 선언하고 저장한 값이 바뀌지 않는 다면, 항상 let 키워드로 선언해야합니다.

var는 저장한 값이 바뀔때만 사용해야합니다.

상수나 변수로 선언하고 콜론을 붙이며 타입을 명시할 수 있는데

이것을 타입명시 라고 합니다.

var welcomeMessage: String

String타입의 welcomeMessage라고 읽을 수 있습니다.

그리고 타입을 명시하면 String 값을 저장하는 변수로 확인이 가능합니다.

또한 상수와 변수의 이름은

let n = 3.14159
let 你好 = "你好世界"
let 🐶🐮 = "dogcow"

유니코드 문자를 포함하여 대부분의 문자로 표현할 수 있으나

공백, 수학적 기호, 화살표, 개인용 유니코드 스칼라값, 또는 선과 박스를 그리는 문자는 포함할 수 없습니다.

변수와 달리 상수는 값이 지정된 후 변경할 수 없으며 값을 변경하려면 컴파일 때 오류가 발생합니다.

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

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

정리

그리고 문서를 읽다가 흥미로운 글을 보았는데

Use let to make a constant and var to make a variable.
The value of a constant doesn’t need to be known at compile time, but you must assign it a value exactly once. This means you can use constants to name a value that you determine once but use in many places.

https://docs.swift.org/swift-book/GuidedTour/GuidedTour.html

상수로 할당한 값은 컴파일 시간이 따로 필요하지 않다는 것이다.

아마 특정 데이터가 변경되지 않을 것을 시스템이 알고 있는 경우

컴파일러 최적화의 가능성도 열어주기 때문인것이 아닌가 싶다.

참고자료

http://seorenn.blogspot.com/2014/07/swift-let.html

https://www.hackingwithswift.com/example-code/language/whats-the-difference-between-let-and-var

https://swift.org

https://stackoverflow.com/questions/24002092/what-is-the-difference-between-let-and-var-in-swift

좋은 웹페이지 즐겨찾기