swift 기초
변수와 상수
- 변수
- 값 변경 가능
- 변수 값 변경 시 처음 저장했던 값과 일치하는 타입으로만 변경 가능
var
키워드 사용
- 상수
- 값 변경 불가능
let
키워드 사용
자료형
- Int
- 부호 있는 정수값 저장
- UInt
- 부호 없는 정수값 저장 (양수만 표현 가능)
- Double & Float
- 실수값 저장
- Double : 64bit 부동소수점 자료형 -> 특별히 매우 정확해야 하는 부동소수정 값, 매우 넓은 범위의 실수값을 저장할 때 사용
- Float : 32bit 부동소수점 자료형
- Bool
- true/false 두 종류의 값을 가지는 자료형
- 논리값을 저장하기 위해 사용됨
- String
- 문자열 저장
- Character
- 한 개의 문자를 저장할 수 있는 단일 자료형
타입 추론과 타입 어노테이션
- 타입 추론
- 변수나 상수를 초기화할 때 입력된 값을 분석하여 변수에 적절한 타입을 컴파일러가 스스로 추론하는 기능
- 스위프트 특성 중 설계에 의한 안전성(Safety by design)
- 타입 어노테이션
- 변수나 상수를 선언할 때 그 타입을 명시적으로 선언해줌으로써 어떤 타입의 값이 저장될 것인지를 컴파일러에 직접 알려주는 문법
- 타입 어노테이션을 사용해야 하는 경우
- 선언과 초기화를 분리할 경우
- 타입 추론으로 얻어지는 타입이 아닌, 다른 타입을 직접 지정할 필요가 있을 때
var temp : Float = 3
var charValue : Character = "문"
// 선언과 초기화를 동시에
var day = 7
// 선언과 초기화를 분리
var year : Int // 선언
year = 1999 // 초기화
타입이 다른 변수끼리의 결합
- swift에서는 숫자와 문자열이 결합할 때 숫자를 자동으로 문자열로 변결하지 않기 때문에 직접 명시해주어야 한다
- String(문자열로 바꾸고 싶은 정수값 또는 변수)
- Int(정수로 바꾸고 싶은 문자열)
- 등등
var str = "hello wolrd"
var year = 2020
var welcome = str + String(year)
- 문자열 템플릿
- 변수나 상수의 값을 문자열 속에 포함시키는 방법
- 정수나 실수 등 문자열이 나니 값도 변환 과정 없이 사용할 수 있도록 스위프트가 제공하는 기능
\(변수명)
// 상수와 변수를 정의
let name = "경자년"
let year = 2020
let month = 4
// 문자열 템플릿을 사용한 문자열 결합
let thisMonth = "지금은 \(year)년 \(name), \(month)입니다."
print(thisMonth)
연산자
산술 연산자
구분 | 연산자 | 사용 예 | 의미 |
---|---|---|---|
단항 연산자 | - | -a | 값의 부호를 변경 |
이항 연산자 | + | a + b | 두 개의 값을 더함 |
- | a - b | 연산자 앞의 값에서 뒤의 값을 뺌 | |
* | a * b | 두 개의 값을 곱함 | |
/ | a / b | 연산자 앞의 값을 뒤의 값으로 나눔 | |
% | a % b | 연산자 앞의 값을 뒤의 값으로 나눈 나머지 |
비교 연산자
연산자 | 사용 예 | 의미 |
---|---|---|
< | a < b | a가 b보다 작으면 true, 그렇지 않으면 false |
> | a > b | a가 b보다 크면 true, 그렇지 않으면 false |
<= | a <= b | a가 b보다 작거나 같으면 true, 그렇지 않으면 false |
>= | a >= b | a가 b보다 크거나 같으면 true, 그렇지 않으면 false |
== | a == b | a가 b와 같으면 true, 같지 않으면 false |
!= | a != b | a가 b와 같지 않으면 true, 같으면 false |
논리 연산자
연산자 | 사용 예 | 의미 |
---|---|---|
! (NOT) | !a | a가 true이면 false, false이면 true 반환 |
&& (AND) | a && b | a와 b 모두 true일 때 true, 둘 중 하나라도 false이면 false 반환 |
|| (OR) | a || b | a 또는 b 둘 중 하나라도 true라면 true, 둘 다 false일 때 false 반환 |
범위 연산자
- 스위프트에서 제공하는 독특한 연산자
- 닫힌 범위 연산자
- 주어진 피연산자 a, b를 포함하는 범위를 나타내는 연산자
1 ... 5
=> 1, 2, 3, 4, 5
- 반 닫힌 범위 연산자
- 연산자의 양쪽 경계 중에서 왼쪽 경계는 포함하되 오른쪽 경계는 포함하지 않는 연산자
1 ..< 5
=> 1, 2, 3, 4- 사용 불가한 경우
1 ..> 5
: 연산자의 방향이 반대인 경우5 ..< 1
: 왼쪽의 값이 오른쪽의 값보다 큰 경우
- for~in 구문에서 쓰일 수 있다
대입 연산자
대입연산자 | 사용 예시 | 의미 |
---|---|---|
= | a = 1 | 변수 a에 1을 대입 |
+= | a += 1 | a = a + 1 |
-= | a -= 1 | a = a - 1 |
*= | a *= 3 | a = a * 3 |
/= | a /= 3 | a = a / 3 |
%= | a %= 3 | a = a % 3 |
«= | a «= 3 | a = a « 3 |
»= | a »= 3 | a = a » 3 |
&= | a &= b | a = a & b |
^= | a ^= b | a = a ^ b |
|= | a |= b | a = a | b |
증감 연산자 (사용하지 않음)
- 스위프트에서는 지원하지 않음