iOS/Swift

[Swift 프로그래밍 3판] 3. 데이터 타입 기본

짱죠니 2023. 9. 6. 14:41

데이터 타입

프로그램 내에서 다뤄지는 데이터의 종류

구조체를 타입의 기반으로 삼아 Swift의 다양한 기능 (extension, Generic) 두루 사용하여 구현

 

 

(1) Int와 UInt

 Int : +, - 부호를 포함한 정수

UInt : - 부호를 포함하지 않는 0을 포함한 양의 정수

 

 진수에 따른 정수 표현

- 10진수

- 2진수 : 접두어 0b 사용

- 8진수 : 접두어 0o 사용

- 16진수 : 접두어 0x 사용

let decimalInteger: Int = 28
let binaryInteger: Int = 0b11100
let octalInteger: Int = 0o34
let hexadecimalInteger: Int = 0x1C

 

 

(2) Bool 

Boolean 타입으로, true / false만 값으로 가짐

 

 

(3) Float과 Double

부동소수점을 사용하는 실수

 

 Double : 64비트의 부동소수 표현

 Float : 32비트의 부동소수 표현

 

 

(4) Character

문자 (Swift는 유니코드 9 문자를 사용하므로 영어는 물론, 유니코드에서 지원하는 모든 언어 및 특수기호 등 사용 가능)

 

 

(5) String

문자열

 

String의 메서드 · 프로퍼티, 관련 연산자들

// 문자열 이어붙이기
// append 메서드 혹은 + 연산자를 통해 문자열 이어붙이기 가능
var hello: String = "Hello"
hello.append("!")					// Hello!

let txt: String = "Append String"
hello += txt 						// Hello! Append String


// 접두어·접미어 확인
// hasPrefix, hasSuffix
hello.hasPrefix("He")				// true
hello.hasSuffix("!")				// false


// 대소문자 변환
// uppercased, lowercased
var convertString: String = "heLLo"
print(convertString.uppercased())	// HELLO
print(convertString.lowercased())	// hello



// 빈문자열 확인
// isEmpty


// 문자열 길이 확인
// count


// 여러 줄의 문자열 
// 큰따옴표 3개
let greeting = """
안녕하세요
여러줄 String Test
"""

 

 

 특수문자

\n : 줄바꿈 문자

\\ : 문자열 내에서 백슬래시를 표현하고자 할 때 사용

\" : 문자열 내에서 큰따옴표를 표현하고자 할 때 사용

\t : 탭 문자

\0 : 문자열이 끝났음을 알리는 null 문자

 

 

(6) Any, AnyObject, nil

 Any : Swift의 모든 데이터타입을 사용할 수 있다는 뜻

데이터타입이 Any로 지정되어 있다면, 그 변수 또는 상수에 어떤 종류의 데이터 타입이든지 상관 없이 할당할 수 있음

 

 AnyObject : Any보단 조금 한정된 의미로 클래스의 인스턴스만 할당할 수 있음

 

 nil : Swift에서의 null, 특정 타입이 아니라 '없음'을 나타내는 키워드

만일 nil 값을 가진 상수 또는 변수에 접근하면 잘못된 메모리 접근으로 런타임 오류 발생 (null point exception)

 

※ Any와 AnyObject는 매번 타입 확인 및 변환을 해줘야하는 불편함과 예기치 못한 오류의 위험을 증가시키기 때문에 될 수 있으면 사용하지 않는 편이 좋음