![](https://velog.velcdn.com/images/ted_kim/post/f9e14f54-7d89-4533-a311-cebd6a15a8a7/image.png)
이번 글에서는 기본적인 데이터 타입에 대해 작성해보고자 한다.
데이터 타입
우선 스위프트의 모든 데이터 타입 이름은 첫 글자가 대문자로 시작하는 '대문자 카멜케이스'를 사용한다.
콘솔 로그
- print() / dump()
- dump()는 print()보다 조금 더 자세한 정보들을 출력해줌
(ex. 구조체에 대해 자세히)
기본 데이터 타입
- Bool, Int, UInt, Float, Double, Character, String
Int와 UInt
- 정수 타입
- UInt : 음수를 포함하지 않는 정수
- Int와 UInt는 엄연히 다른 것임! (타입 에러)
- 2진수 : 0b / 8진수 : 0o / 16진수 : 0x
let binaryInteger: Int = 0b11100 //10진수 28과 동일
Bool
- 참 (true) / 거짓 (false)
- 다른 언어처럼 참을 1, 거짓을 0으로 지정할 수 없다 !
Float와 Double
- Double : 최소 15자리의 십진수 표현 가능
- Float : 6자리의 숫자까지 표현 가능
- 만약 둘 중 애매하다면, Double을 쓰는 것 권장
(더 큰 범위를 포함하고 있기 때문에 더욱 정확할 수 있음)
임의의 수 만들기
- random(in:) : 정수, 실수 모두 임의의 수를 만들 수 있음
Int.random(in: -100 ...100)
Double.random(in: 1.5 ...4.3)
Character
- 문자 (문자열 X)
- 스위프트는 유니코드 9 문자를 사용
→ 유니코드에서 지원하는 모든 언어 및 특수기호 등을 사용할 수 있음
let commandCharacter: Character = "♡" //가능 (유니코드 하트)
String
- 문자열
- 여러 줄의 문자열을 쓰고 싶다면 큰따옴표 3개를 사용하면 됨
특수문자(제어문자)
특수문자 | 설명 |
---|
\n | 줄바꿈 문자 |
\\ | 문자열 내에서 백슬래시를 표현할 때 사용 |
\" | 문자열 내에서 큰따옴표를 표현할 때 사용 |
\t | 탭 문자 |
\0 | 문자열이 끝났음을 알려주느ㄴ null 문자 |
Any, AnyObject와 nil
Any
- 스위프트의 모든 데이터 타입을 사용할 수 있다는 뜻
- 할당되는 타입으로 변환되는 것이 아니라, 명시적으로 타입을 변환해주어야 함!
(Any 타입에 String을 넣었다고 String 타입으로 변환되는 것이 아님!)
AnyObject
- 클래스의 인스턴스만 할당할 수 있음
- 다른 것이 들어오면 에러발생
되도록이면 Any와 AnyObject는 사용하지 않는 것을 권장
--> 타입에 민감한 스위프트 언어에서 예기치 못한 에러 발생 가능
nil
- 특정 타입이 아니라, ‘없음’을 나타내는 키워드 —> 값이 비어있음
- nil일때 접근하면 런타임 오류 발생
- Any 타입과 AnyObject 타입에 nil을 할당할 수 없음
[출처] 스위프트 프로그래밍 (야곰), 야곰의 스위프트 기초문법 강좌, 개발하는 정대리 스위프트 강좌