Swift의 기본 데이터 타입 7가지
✒︎Bool
✒︎Int, UInt
✒︎Float, Double
✒︎Character, String
*Swift 기본 데이터 타입의 가장 큰 특징 : 데이터 타입 간의 데이터 교환이 불가능하다.
Bool - true, false
데이터 타입 bool의 값으로 오직 true, false만 할당될 수 있다.
다른 프로그래밍 언어에서는 1이 true, 0이 false를 의미하기도 하는데, swift에서는 안된다.
Int, UInt (Unsigned Intenger : 부호가 없는 정수값) - 정수값
intenger 변수의 데이터 타입을 Int (정수형)이라고 선언해주었다. (-4번째 줄)
정수값 100을 할당해주고 (-5번째 줄)
소수값 100.1을 할당해주니 에러가 난다. 왜 Int값에 Double(실수)값을 할당해주려고 하냐?
uint 변수의 데이터 타입을 UInt라고 선언해주고
10이라는 값을 할당해주었다.
-10이라는 값을 할당해주니 에러가 뜬다. UInt는 부호가 없는 정수값인데 왜 부호가 있는 정수값을 할당해주니?
Float, Double (실수)
Float와 Double의 차이점
Float와 Double 모두 실수값을 의미하지만 그 정밀도에 차이가 있다.
Float에 비해 Double은 더 많은 소수점 자리 숫자를 표기할 수 있다.
그리고 데이터 타입을 우리가 선언해주지 않고 값을 지정하면 자동으로 선언되는 데이터 타입은
print한 값을 유추해보아 Double인 것을 알 수 있다.
에러 내용 : 왜 데이터 타입이 Double인 변수에 Float 데이터 타입의 값을 할당하려 하냐? 안돼~ 돌아가~
사실 float나 double이나 서로 담을 수 있다. 근데 Swift에서는 "이 데이터 타입은 이것만! 저 데이터 타입은 저것만!" 식이다. 이만큼 Swift에서는 다른 데이터 타입간의 값의 할당이 굉장히 엄격하다.
some에 정수값을 입력해주었다.
그리고 부호가 붙은 값을 넣어도 에러가 안 뜨고, 소수값을 할당해주니 에러가 발생했다.
이를 보아, 정수값을 할당해주면 자동으로 선언되는 데이터 타입은 Int이다.
so에 소수점이 붙은 실수값을 입력해주었다.
이후 양의 정수, 음의 정수, 캡쳐에는 안 나왔지만 소수점 아래 숫자가 정밀하게 표현된 것으로 보아
소수점이 붙은 실수값을 할당해주면 자동으로 선언되는 데이터 타입은 Double이다.
Character, String
Character : 한 글자
String : 여러 글자
Character 타입에는 이모티콘을 포함하여 한 글자만 할당 가능하다.
두 글자를 할당하니 '왜 Character 데이터 타입에 String 데이터 타입 값을 할당하려 하니?'라며 에러가 뜬다.
데이터 타입이 String인 경우에는 한 글자도 두 글자도 가능하다!
하지만 9번째 줄을 보자.
분명 값만 보면 someString이나 someCharacter나 값이 동일하다. 왜 에러가 뜨는 걸까?
이유는 이미 선언해준 데이터 타입이 다르기 때문이다. someCharacter는 데이터 타입이 Character이기 때문에 이를 String에 할당하려 하니 에러가 뜨는 것이다.
자동으로 설정되는 데이터 타입이 무엇인지 알아보자.
만약 some의 데이터 타입이 Character였다면 5번째 줄에서 에러가 떴을 것이다. 두 글자이기 때문이다.
에러가 뜨지 않는 걸로 보아, 기본 데이터 타입은 String이다.
생각해보기
내 생각
intenger는 Int
floatingPoint는 Double
apple은 String
type(of:변수명)
type(of:변수명)을 입력하면 값의 데이터 타입을 확인할 수 있다.
이렇게 확인할 수 있다.
'iOS > Swift' 카테고리의 다른 글
[iOS 프로그래밍을 위한 스위프트 기초] Ch1. 스위프트 기초 - 07. 함수 기본 (0) | 2021.07.18 |
---|---|
[iOS 프로그래밍을 위한 스위프트 기초] Ch1. 스위프트 기초 - 06. 컬렉션 타입(Array, Dictionary, Set) (💎생각해보기) (0) | 2021.07.15 |
[iOS 프로그래밍을 위한 스위프트 기초] Ch1. 스위프트 기초 - 05. Any, AnyObject, nil (💎생각해보기) (0) | 2021.07.14 |
[iOS 프로그래밍을 위한 스위프트 기초] Ch1. 스위프트 기초 - 03.상수와 변수 (0) | 2021.07.13 |
[iOS 프로그래밍을 위한 스위프트 기초] Ch1. 스위프트 기초 - 02. 명명법 / 콘솔로그 / 문자열 보간법 (0) | 2021.07.13 |