궁금한 내용을 검색해보세요!
이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.
서근 개발노트
티스토리에 팔로잉
SWIFT/Grammar

Swift : 기초문법 [ 변수와 상수]

서근
QUOTE THE DAY

-
Written by SeogunSEOGUN

반응형

본 게시글은 yagom님의 Swift 프로그래밍 3판을 참고하여 작성되었습니다.

 

변수와 상수

변수와 상수는 특정 데이터 타입에 해당하는 값의 이름입니다. 변수는 생성 후 데이터값을 변경할 수 있지만, 상수는 값을 설정하면 변경할 수 없습니다.

변수

Swift에서 변수를 생성하려면 var 키워드를 사용합니다. 형태는 아래와 같습니다.

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

변수를 생성할 때 데이터 타입은 생략할 수 있습니다. (비추천)

TIP
 
 

데이터 타입 생략
변수를 생성할때 데이터 타입을 생략하게 되면 컴파일러가 변숫값의 타입을 스스로 추론하여 지정합니다. 이러한 기능을 타입추론이라고 합니다. 하지만 이 기능을 초보자들이 사용하게되면 오히려 독이 될 수 있기 때문에 타입 추론을 많이 사용하지 않는것이 좋습니다. 자칫 오류가 발생하면 오류를 찾고 해결하는데 상당한 시간이 걸릴 수 있기 때문이죠. 그렇기 때문에 변수 또는 상수의 이름 뒤에 콜론을 붙이고 타입을 명시하는 타입지정 기능을 사용하는것이 추후에 오류를 찾고 해결하기 쉽습니다.

var name: String = "서근"
var age: Int = 100
var job = "학생" //타입추론

print("\(type(of: job))")

//변수는 값을 변경해 줄 수 있다.
age = 99

//변경할때는 기존의 타입과 동일하게 값을 할당해줘야 한다.
job = "개발자"

print("저의 이름은 \(name)이고, 나이는 \(age)세 이며, 직업은 \(job)입니다.")

상수

변수(var)의 값은 시간이 지남에 따라 변경 될 수 있고 유용하기 때문에 변수에 해당 이름이 있다고 이미 배웠습니다. 

 

그러나 값(value)을 한 번만 설정하고 절대 변경하지 않으려는 경우가 많으므로 var라는 키워드에 대한 대안인 상수(let)가 있습니다. 상수수는 키워드가 생성되고  절때로 다시 변경 될 수있는 값입니다.

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

이를 변경하려고하면 Xcode는 코드 실행을 거부합니다. 

그것은 아주 안전한 형태입니다. 상수를 사용하면 더 이상 실수로 무언가를 변경할 수 없습니다.

 

고유 한 Swift 코드를 작성할 때 상수는 특별히 값을 변경하려는 경우가 아니면 항상 사용해야 합니다. 

 

상수 또한 마찬가지로 데이터 타입을 생략할 수 있습니다.

let name: String = "서근"
var age: Int = 100
var job = "학생" //타입추론
let weight = 70.1 // 타입추론

print("\(type(of: weight))") //Double

name = "미르" //상수값은 변경할 수 없기 때문에 오류 발생
age = 90
job = "개발자"

print("저의 이름은 \(name)이고, 나이는 \(age)세 이며, 직업은 \(job)입니다.")

Swift에는 왜 상수(let)와 변수(var)가 있나요?

변수는 프로그램에 임시 데이터를 저장하는 좋은 방법이지만, Swift는 더 나은 두 번째 옵션 인 상수를 제공합니다. 변수와 모든면에서 동일하지만 한 가지 중요한 차이점이 있습니다. 일단 설정되면 값을 변경할 수 없습니다.

 

Swift는 상수를 정말 좋아합니다. 실제로 변수를 만든 다음 값을 변경하지 않은 경우 상수를 사용하는 것이 좋습니다. 그 이유는 문제를 피하기위한 것입니다. 생성 한 모든 변수는 원할 때마다 원하는만큼 변경할 수 있으므로 일부 제어 권한을 잃게됩니다.

 

오래된 중요한 사용자 데이터는 언제든지 실수로 제거되거나 교체 될 수 있습니다.

 

상수는 일단 설정되면 값을 변경할 수 없으므로 Swift와의 계약과 비슷합니다.

"이 값은 중요합니다. 내가 무엇을하든 변경하지 마십시오." 

물론 변수로 동일한 계약을 시도 할 수는 있지만, 사용자의 키보드의 한 부분이 문제를 일으킬 수 있기 때문이죠 :)

 

예시

let width = 14.0
let username = "twostraws"
let tweeted = false
let password = "fr0sti3s"

 

Constants TEST문제를 풀려면 이곳을 클릭해주세요.

 

읽어주셔서 감사합니다🤟

 

 


잘못된 내용이 있으면 언제든 피드백 부탁드립니다.


서근


위처럼 이미지 와 함께 댓글을 작성할 수 있습니다.