🐦 Swift

[Swift] 데이터 타입 기본

dev_zoe 2023. 3. 8. 19:51
반응형

본 포스팅은 '스위프트 프로그래밍 (3판) - 야곰 저' 도서와 앨런 Swift 문법 마스터스쿨 강의를 공부하며 정리하는 포스팅입니다.

혹시 틀린 부분이 있거나 질문이 있으시다면 언제든지 댓글 달아주시면 정말 감사하겠습니다 :)


1. 데이터 타입

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

- 스위프트의 기본 데이터 타입은 모두 구조체를 기반으로 구현되어 있음

- 스위프트의 모든 데이터 타입 이름은 첫 글자가 대문자로 시작하는 대문자 카멜케이스를 사용한다.

 

2. 데이터 타입 종류

  설명 예시
Int 정수
- 최대값 9,223,372,036,854,775,807
-5, 1, 3, 100, 1000...
Float, Double 부동소수 타입
- Float은 최대 6자리, Double은 최대 15자리 까지의 정보를 정확하게 저장
- Swift에서는 Double 사용을 권장
-5,324, -2.0, 3.5...
Character 단 하나의 문자, 큰 따옴표 (" ") 사용 "A", "b", " "
String 문자열, 큰 따옴표 (" ") 사용 "하이", ""
Bool 불리언 타입, true / false의 값만 가짐
toggle() : true - false 반전
 

*Float보다 Double을 권장하는 이유?

- 메모리를 조금 더 차지하더라도 정확성을 위해서

https://hongssup.tistory.com/559

 

[Swift] Why double is preferred over float? (+ Int / Int32 / Int64)

Swift에서 Float 보다 Double 이 더 많이 쓰이는 이유? Swift에서 double은 float보다 더 많이 사용되는 이유는 정확성과 성능 때문이다. Double has a precision of at least 15 decimal digits, whereas the precision of Float can

hongssup.tistory.com

 

*String의 다양한 활용 (코테에서 문자열 다룰일이 많아서 준비하면서 정리했었던 포스팅)

https://devyul.tistory.com/entry/Swift-%EC%BD%94%EB%94%A9%ED%85%8C%EC%8A%A4%ED%8A%B8%EC%97%90-%ED%95%84%EC%9A%94%ED%95%9C-%EB%AC%B8%EC%9E%90%EC%97%B4%EB%B0%B0%EC%97%B4-%EA%B4%80%EB%A0%A8-%EC%A0%95%EB%A6%AC

 

[Swift] 코딩테스트에 필요한 문법 총정리

문자열/배열/딕셔너리/세트 문자열/배열 ✅ 문자열/배열 인덱스 함수 정리 startIndex : 문자열/배열의 첫번째 인덱스 endIndex : 문자열/배열의 마지막 인덱스 Array.index(Array.Index, offsetBy: String.IndexDistan

devyul.tistory.com

 

3. 타입 문법

  예시
타입 주석 var name: String = "조이"
// 데이터 타입을 명시하는 것을 의미한다.
타입 추론 var name = "조이"
// 데이터 타입 명시 X -> 컴파일러가 데이터 타입을 추론함
타입 안정성 var number = 12
number = 3.14
// 데이터 타입이 서로 다르므로 number에 Double 자료형을 할당할 수 없음

 

4. 타입 별칭 (typealias)

스위프트는 기본 데이터 타입과 사용자가 만든 데이터 타입 모두 별칭을 지정할 수 있다. 

이 때 사용하는 스위프트 문법을 typealias 라고 함

 

보통 아래 경우에서 자주 사용하는 것 같다.

1) 코드를 간결하게 하기 위해 구조체나 클래스의 선언부가 길어서 한 줄에 다 담기지 않거나, 이를 사용할 일이 잦을 때

2) 객체지향 프로그래밍을 할 때, 객체를 유의미하게 지정하여 구분하고 싶을 때 가독성을 높이기 위함

(예를 들어 피자를 만드는 프로그램을 만드는데 재료를 String으로 하면 헷갈리니까 typealias Cheese = String 이런식으로 한다든지..?!)

+ 책을 보니 튜플은 타입 이름에 해당하는 키워드가 없어서, 특정 튜플을 자주 사용하는 경우에도 쓰는 것으로 보인다.

//1. 의미를 부여하여 편리하게 사용하고 싶을 때
typealias Cheese = String
typealias count = Int

let cheese: Cheese = "모짜렐라"
let cheeseCount: count = 0

//2. 한 줄에 코드가 너무 길어질 때
typealias PostSectionDataSource = RxCollectionViewSectionedAnimatedDataSource<BasicPostSection>

//3. 특정 튜플을 쓸 일이 잦을 때
typealias PersonTuple = (name: String, age: Int, height: Double)

let yuri: PersonTuple = ("yuri", 10, 180.0)

print("\(yuri.name), \(yuri.age), \(yuri.height)") //yuri, 10, 180.0
반응형

'🐦 Swift' 카테고리의 다른 글

[Swift] 변수와 상수, 의미 있는 이름  (0) 2023.05.09
[Swift] 옵셔널, 옵셔널 바인딩, 강제 추출, nil-coalescing  (0) 2023.03.20
[Swift] 함수  (0) 2023.03.15
[Swift] 흐름제어  (0) 2023.03.14
[Swift] 스위프트  (0) 2023.03.07