본 내용은 Swift 공식 문서에 기반하여 작성되었습니다.
https://docs.swift.org/swift-book/LanguageGuide/TheBasics.html
Integers [정수]
부분 표현이 아닌 수. 부호가 있거나 (양수, 0, 음수) 없는(양수, 0) 수를 포함
// 부호가 없는 정수 유형 : 8-bit , 부호가 있는 정수 유형 : 32-bit
// 각 유형에 별도의 이름이 존재한다 (Int8, Int32 등)
let minValue = UInt8.min // minValue is equal to 0, and is of type UInt8
let maxValue = UInt8.max // maxValue is equal to 255, and is of type UInt8
// 각 유형의 최대, 최소값의 경우 min/max를 활용하여 확인할 수 있다.
Int 대부분의 경우 플랫폼의 크기와 동일한 크기의 정수 유형을 제공
// 32-bit platform : Int32
// 64-bit platform : Int64
UInt Unsigned(양수, 0)의 정수 유형을 제공
// 32-bit platform : Int32
// 64-bit platform : Int64
Floating-Point Numbers [부동 소수점 숫자]
실수 유형
// 정수 유형보다 훨씬 더 넓은 범위의 값을 표현
// Swift에는 두 개 유형의 부동 소수점 숫자를 제공 (Double (64-bit), Float (32-bit))
// Double은 십진수 15이상, 정밀도는 Float가 더 높다. 둘다 적합한 상황에서는 Double이 선호된다.
Type Safety and Type Inference [유형 안전성 및 유형 추론]
// Type Safety : 코드가 String 변수를 필요로 하는 경우, 실수로라도 Int를 전달할 수 없다는 의미로, 컴파일 시 유형 검사를 수행
// Type Inference : 필요한 값의 유형을 지정하지 않으면 Swift는 유형 추론을 통해 적절한 유형을 유추
// 유형 추론 시 실수의 경우 Double로 추론.
Numeric Literals[숫자 리터럴]
// 10 진수 : no prefix
// 2 진수 : 0b
// 8 진수 : 0o
// 16 진수 : 0x
let decimalInteger = 17
let binaryInteger = 0b10001 // 17 in 2진수
let octalInteger = 0o21 // 17 in 8진수
let hexadecimalInteger = 0x11 // 17 in 16진수
Numeric Type conversion [숫자 형변환]
// 일반적으로 Int를 사용하는게 좋다.(음수가 아니더라도) -> 즉시 상호 운용 가능하기 때문
// 명시적으로 크기가 지저오딘 데이터 혹은 성능과 메모리 사용량 관리의 측면에서 필요한 경우 다른 정수 유형을 사용한다.
// 변수에 저장할 수 있는 순자의 범위는 숫자 유형마다 다르다. Int8 (-128 ~ 127), UInt8(0 ~ 255)
let cannotBeNegative: UInt8 = -1
// UInt 타입에 음수를 저장할 수 없다. (Error!!!!!!!!)
let tooBig: Int8 = Int8.max + 1
// 최대값보다 큰 수를 저장할 수 없다. (Error!!!!!!!!)
// ********** 정수
let twoThousand: UInt16 = 2_000
let one: UInt8 = 1
let twoThousandAndOne = twoThousand + UInt16(one)
// 변수 one을 UInt16으로 형변환하여 더하기 연산 가능
Type Aliases [유형 별칭]
// 변수 유형에 대해 대체하는 이름을 지정할 수 있다.
// 특정 크기, 유형의 데이터로 작업할 때 더 적절한 이름으로 기존 유형을 이용하는 경우
typealias AudioSample = UInt16
var maxAmplitudeFound = AudioSample.min
// AudioSample.min에 대한 실제 호출은 UInt16.min
Booleans [논리형]
true(참), false(거짓)
// 부호가 없는 정수 유형 : 8-bit , 부호가 있는 정수 유형 : 32-bit
// 각 유형에 별도의 이름이 존재한다 (Int8, Int32 등)
let orangesAreOrange = true
let turnipsAreDelicious = false
if turnipsAreDelicious {
print("Mmm, tasty turnips!")
} else {
print("Eww, turnips are horrible.")
}
// 결과값 : "Eww, turnips are horrible."
// if문은 true(참)인 경우에 실행, 그러나 turnipsAreDelecious의 경우 false(거짓)이므로 if문은 통과, else문 실행.
let i = 1
if i {
} // i는 논리형이 아니므로 컴파일에러
if i == 1 {
} // 'i 는 1과 같다' 는 명제는 참/거짓의 결과값이 존재하므로 컴파일 가능
Tubles [튜플]
여러 값을 단일 복합 값으로 그룹화
// 튜플 내의 값은 모든 유형이 될 수 있으며, 각 값이 같은 유형일 필요는 없다.
// 상수를 튜플로 선언
let http404Error = (404, "Not Found")
// http404Error는 (Int, String) 타입을 가지는 튜플이며, (404, "Not Found") 와 동일
// 선언된 튜플을 분해
let (statusCode, statusMessage) = http404Error
print("The status code is \(statusCode)")
// 결과값 : "The status code is 404"
print("The status message is \(statusMessage)")
// 결과값 : "The status message is Not Found"
// 튜플 분해 시 특정 값 고의 누락
let (justTheStatusCode, _) = http404Error
print("The status code is \(justTheStatusCode)")
// 결과값 : "The status code is 404" - 튜플을 분해할 때 밑줄(_) 사용 시 일부를 무시.
// 인덱스를 활용한 변수에 대한 접근
print("The status code is \(http404Error.0)")
// 결과값 : "The status code is 404"
print("The status message is \(http404Error.1)")
// 결과값 : "The status message is Not Found"
// 인덱스 번호는 0에서 시작, 이 수자를 통해 개별 요소 값 호출 가능.
// 튜플 정의 시 개별 요소 이름 지정 가능
let http200Status = (statusCode: 200, description: "OK")
print("The status code is \(http200Status.statusCode)")
// 결과값 : "The status code is 200"
print("The status message is \(http200Status.description)")
//결과값 : "The status message is OK"
'DEVELOPMENT > iOS AOS' 카테고리의 다른 글
[Swift] 공식 문서 요약 - The Basics_04 (0) | 2023.09.13 |
---|---|
[Swift] 공식 문서 요약 - The Basics_03 (0) | 2023.09.13 |
[Swift] 공식 문서 요약 - The Basics_01 (0) | 2023.09.13 |