티스토리 뷰
*********************************
Topic. 타입 변환(Type Conversion)
*********************************
let height = Int8(5) // Int -> Int8 타입 변환
let width = 10 // 타입 추론에 의해 10은 Int 타입으로 선언되어 있다.
let area = height * width // let area = Int8 * Int 와 같다.
print(area) // Int8과 Int는 같은 Int 타입이지만 각 타입이 다루는 수의 범위가 달라 에러가 뜹니다.
// 타입 변환 Example. 1
let h = UInt8(25)
let x = 10 * h
// 10이 그냥 리터럴 데이터 값. 타입이 들어가기 전(선언 되지 않은 상태).
그래서 10 * (UInt8)25 인데, h가 UInt 타입이기 때문에 컴파일러는 10을 UInt8로 추론하여 연산을 하게 된다.
print(x)
// 타입 변환 Example. 2
let num = 10
let floatNum = Float(num)
type(of: floatNum)
// 타입 변환 Example. 3
let signedInteger2 = Int(floatNum) // Float -> Int 타입 변환
type(of: signedInteger2)
// 타입 변환 Example. 4
let star = String(num) // Int -> String
type(of: star)
// Ref. Int도 float도 다 타입의 세부 내용을 살펴보면 구조체다.
// Ref. Swift = Type Safety Language.
// magnitude, abs : 절대값 구하기
// 둘 다 절대값을 구하는 것이지만, 전자는 타입이 변할 수 있으며, 후자는 불가능
let integer2 = Int(-15)
let magnitude = integer2.magnitude
let absNum = abs(integer2)
type(of: magnitude)
type(of: absNum)
// 가능하면은 abs를 사용하면 좋다. 헤더를 보면서 이해해보도록(Command + Control + Shift + 클릭) 하자.
*****************************************************
생각해보기. 양수를 사용할 때 Int / UInt 중 어느 것이 좋을까?
사용성
안전성 : 서로 데이터의 범위가 다르기 때문에 Int
타입 추론
변환 : numberInt * numberUInt 할때 변환해야 해서 불편
아무튼 결론은 위의 요소들을 고려했을 때, 그냥 Int를 사용하자.
*****************************************************
'Programming > Swift' 카테고리의 다른 글
1. Swift : 접근 제어(Access Control) (0) | 2018.05.22 |
---|---|
1. Swift : 함수(function) (0) | 2018.05.16 |
1. Swift : 리터럴, 타입(Literals & Types) (+ 타입 앨리어스) (0) | 2018.05.16 |
1. Swift : 연산자(Operator) (0) | 2018.05.15 |
1. Swift : 타입 어노테이션, 타입 추론(Type Annotation & Type Inference) (0) | 2018.05.14 |
- Total
- Today
- Yesterday
- ARC
- 깃허브
- commit
- 컨버전
- fallthrough
- Dictionary
- 리터럴
- 패캠
- inswag
- 튜플
- OOP
- fastcampus
- 타입
- 딕셔너리
- 개발스쿨
- 열거형
- 프로그래밍
- Operator
- var
- function
- ios
- tca
- Swift
- lifecycle
- iOS개발스쿨
- GCD
- 스위프트
- 패스트캠퍼스
- array
- swiftUI
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |