티스토리 뷰
Swift 문법의 기본인 변수, 상수, Scope 에 대해 알아보겠습니다.
1. Variable
변할 수 있는 값을 의미하며 변수라고 합니다.
변수 선언 방식은 다음과 같습니다.
/*
var variableName = variableValue
*/
var name = "Swift" // Swift 에서 문자열은 "" 로 표시
var year = 2020
var valid = true // 참: true, 거짓: false
var x = 0.0, y = 0.0, z = 0.0
// 표현식
name
// 출력 함수 사용
print(name)
print(year)
print(valid)
print(x, y, z)
이미 선언된 변수에 새로운 값을 할당하는 방식은 다음과 같습니다.
/*
variableName = newVariableValue
*/
name = "Steve"
// var name = "Steve"
// 위 코드는 에러 발생!
// 동일한 Scope 에서 같은 이름의 변수는 선언할 수 없음.
name = "Yoona"
print(name) // 결과: Yoona
var anotherName = name
print(name, anotherName) // 결과: Yoona Yoona
anotherName = "Tim"
print(name, anotherName) // 결과: Yoona Tim
// year = "2020"
// 위 코드는 에러 발생!
// 변수를 선언한 시점에 해당 변수의 타입이 결정되기 때문에 이후에 다른 타입의 값을 해당 변수에 할당할 수는 없음.
2. Constants
상수는 한번 값을 지정하면 변경할 수 없는 값을 의미합니다.
상수의 선언은 다음과 같습니다.
/*
let constantName = constantValue
*/
let name = "Yoona"
name
// name = "Tim"
// 위 코드는 에러 발생!
// 상수의 경우 한번 값을 지정하면 값을 변경할 수 없음.
변수와 상수 중 Swift 에서는 상수를 더 선호하는데 상수를 사용하면 다음과 같은 장점이 있기 때문입니다.
- 장점 1: 실수로 인해 값이 변경되는 것을 방지
- 장점 2: 코드 최적화가 되어 더 빠르게 실행 가능
따라서 이름을 지정해야 하는 경우 먼저 상수(let)으로 선언하여 사용하다가 나중에 값에 변경이 필요한 경우 변수(var)로 수정하는 것을 권장합니다.
3. Naming Convention
Swift에서 변수 등의 이름을 지을 때 CamelCase 를 사용합니다.
CamelCase 는 2가지 경우로 나뉘는데 다음과 같습니다.
종류 | 예시 | 용도 |
UpperCamelCase | NameVariable | Class, Structure, Enumeration, Extension, Protocol |
lowerCamelCase | nameVariable | Variable, Constant, Function, Property, Method, Parameter |
4. Scope
변수 및 상수가 유효한 범위를 말하며, 변수와 상수는 선언된 위치에 따라 Scope 가 결정됩니다.
Scope 는 크게 2가지로 구분됩니다.
- Global Scope
: {} 에 속하지 않으며 1개만 존재합니다.
- Local Scope
: {} 내부에 포함되며, 여러 개가 존재할 수 있고, 중첩도 가능합니다.
// #1 (Global Scope)
let g1 = 123
// g2 - 에러: g2 상수를 선언하기 전이라 접근 불가능!
// l1 - 에러: l1 은 하위 Scope 에 선언되어 있어 접근 불가능!
func doSomething() {
// #3 (Local Scope 1)
g1 // 결과: 123
g2 // 결과: 123
let l1 = 123
let g1 = 456
g1 // 결과: 456
g2 // 결과: 123
if true {
// #4 (Local Scope 2)
l1 // 결과: 123
g1 // 결과: 456
// l2 - 에러: l2 상수를 선언하기 전이라 접근 불가능!
let l3 = 123
}
// #5 (Local Scope 1)
let l2 = 123
// l3 - 에러: 하위 Scope 에 선언되어 있어 접근 불가능!
}
// #2 (Global Scope)
let g2 = 123
g1 // 결과: 123
g2 // 결과: 123
doSomething()
Scope 는 다음과 같은 규칙을 가지고 있습니다.
1. 동일한 Scope 에 있는 변수와 상수는 접근할 수 있다.
2. 동일한 Scope 에서는 이전에 선언된 변수와 상수에 접근할 수 있다.
3. Local Scope 에서는 자신의 상위 Scope 에 선언된 변수와 상수에 접근할 수 있다.
하지만, Local Scope 이후에 선언된 변수 및 상수에는 접근할 수 없다.
4. 상위 Scope 에서는 하위 Scope 에 접근할 수 없다.
5. 서로 다른 Scope 에 동일한 이름을 가진 변수와 상수가 존재한다면, 가장 인접한 Scope 에 있는 변수와 상수를 사용한다.
지금까지 Swift 에서 변수, 상수 선언 방식 및 특징을 알아보고 명명 규칙과 Scope 에 대해 알아보았습니다.
'swift > 문법' 카테고리의 다른 글
05. Swift 문법 - Loop Statements (0) | 2020.10.11 |
---|---|
04. Swift 문법 - Conditional Statements (0) | 2020.10.11 |
03. Swift 문법 - Operators (0) | 2020.10.10 |
02. Swift 문법 - Literals, Data Types (0) | 2020.10.09 |
00. Swift 문법 - Token, Expressions, Statements 등 기초 지식 (0) | 2020.10.08 |
- Total
- Today
- Yesterday
- sort
- Combination
- programmers
- map
- cloudfront
- array
- 에라토스테네스의 체
- Dynamic Programming
- AWS
- string
- spring
- 조합
- CodeDeploy
- Algorithm
- ECR
- Baekjoon
- EC2
- search
- ionic
- java
- CodeCommit
- permutation
- 수학
- 소수
- 프로그래머스
- 순열
- DFS
- BFS
- CodePipeline
- SWIFT
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |