* 정의
- 메모리에 저장된 값을 다른 형식으로 바꿔서 새로운 값을 리턴하는 것을 의미한다.
ex)
var a: Int = 123
var b: Int64 = 123
a = b
그렇다면 위에서 typeConversion 을 해준다면 어떻게 될까?
a = Int(b)
ex)
let x = 123
let y = 4.56
x = y
Double(x) + y
산술표현식을 하는데에 있어서도 반드시 서로 같은 타입들끼리 표현식을 구성해줘야 에러 없이 올바른 값 으로 평가가 가능하다. 여기서 문득 궁금해지는 부분이 있다. 성격이 엄연히 다른 형식들끼리 TypeConversion 이 가능할까?
=> 가능하기도하고 불가능하기도 하다.
ex)
var int:Int = 123
var str = "456"
int = Int(str)!
var resultInt = Int(str)
type(of: resultInt)
ex)
var int2: Int = 123
var str2 = "456a"
int2 = Int(str2)!
str2의 초기값이 "456" 이 아니라 "456a" 와 같이 숫자와 문자의 조합인
문자열리터럴인 경우에는 Int타입변수에 할당이 불가능하다.
var result2 = Int(str2)
type(of: result2)
'TypeConversion' 을 우리말로 해석하면 '형변환'이라고 해석되지만 'TypeCasting'역시 형변환이라고 해석되기 때문에 'TypeConversion' 이라고 말하는 것이 옳다 왜냐하면 엄연히 서로 다르기 때문이다.
Type Conversion -> 메모리에 저장된 값을 다른 형식의 값으로 변환해서 리턴한다.
Type Casting -> 메모리에 저장된 값을 그대로 두고 컴파일러가 다른형식으로 바꾸도록 지시한다
*/