티스토리 뷰
[시작]
- Swift의 기본 데이터 타입은 구조체를 타입의 기반으로 삼아 Swift의 다양한 기능(익스텐션, 제네릭 등)을 두루 사용하여 구현되어 있음
[Int와 Uint]
- 정수 타입
- UInt : unsigned int
- max, min 프로퍼티로 타입의 최솟값과 최대값을 알아볼 수 있음
- Int와 UInt를 다른 타입으로 인식하므로 굳이 섞어서 사용할 필요가 없음 (타입 변환 시 많은 자원을 소모할 가능성)
1 2 3 4 5 6 7 | var integer: Int = 100 let integer2: Int = Int.max + 1 //오버플로우 var unsignedInt: UInt = 3 let unsignedInt: UInt = -2 //비부호형 정수에 음수를 할당할 수 없음 integer = unsignedInt //둘의 타입이 다르므로 할당 불가능 integer = Int(unsignedInt) //타입 캐스팅을 통해 할당 가능 | cs |
[Bool]
- 불리언 타입 (true / false)
1 2 | let isNight: Bool = false let isDay: Bool = true | cs |
[Float와 Double]
- 부동소수점을 사용하는 실수 타입
- 64비트를 사용하는 Double, 32비트를 사용하는 Float
1 2 3 4 | var float: Float = 17823.52 var double: Double = 12785.234 float = double //둘의 타입이 다르므로 할당 불가능 float = Float(double) //타입 캐스팅을 통해 할당 가능 | cs |
[Character]
- 문자, 단 하나의 문자
- 작은따옴표가 아닌 큰따옴표를 사용
1 2 | let character1 = "A" //String 타입으로 타입 추론 let character2: Character = "A" //Character 타입으로 타입 지정 | cs |
[String]
- 문자열
- 큰따옴표를 사용하여 표현
1 2 3 4 5 6 7 | var string: String = "Hello" let emptyString: String = String() //"" string.append(" World!") //append()로 문자열 이어붙이기, Hello World! string + "Swift" //+ 연산자로 문자열 이어붙이기, Hello World!Swift emptyString.count //문자열의 문자 개수 구하기, 0 emptyString.isEmpty //빈 문자열인지 확인, true | cs |
- 이외에 내장된 다양한 문자열 관련 메서드와 프로퍼티
: hasPrefix(_:) : 접두어가 있는지 확인
: hasSuffix(_:): 접미어가 있는지 확인
: uppercased() : 모두 대문자로 바꾸어줌
: lowercased() : 모두 소문자로 바꾸어줌
- 여러 줄 문자열 : """ 사용
1 2 3 4 5 6 7 8 | let string = """ 안녕하세요 안녕 하세 요 """ //안녕하세요\n안녕\n하세\n요 | cs |
[특수문자]
- \n : 개행
- \\ : 문자열 내 백슬래시 사용
- \" : 문자열 내 큰따옴표 사용
- \t : 탭
- \0 : 문자열 끝 (NULL)
[Any, AnyObject와 nil]
- Any : Swift의 모든 데이터 타입 사용 가능
- AnyObject : 모든 클래스의 인스턴스 할당 가능
- 될 수 있으면 사용하지 않는 편이 좋음
: 타입에 엄격하므로 해당 타입으로 선언된 변수의 값을 사용하기 위해 매번 타입 확인 및 변환을 해주어야 함
- nil : 없음을 나타내는 키워드. 변수 또는 상수에 값이 들어있지 않고 비어있음을 나타냄
nil에 접근하면 런타임 오류 발생
'Swift > 야곰의 스위프트' 카테고리의 다른 글
6장 흐름 제어 (0) | 2018.01.29 |
---|---|
5장 연산자 (0) | 2018.01.29 |
4장 데이터 타입 고급 (0) | 2018.01.29 |
2장 스위프트 처음 시작하기 (0) | 2018.01.29 |
1장 스위프트 (0) | 2018.01.29 |