본문 바로가기

 𝗔𝗣𝗣𝗟𝗘/SWIFT : GRAMMAR

Swift 기초 문법 - 데이터 타입

 

 

 

 

데이터 타입

 

 

💡 데이터 타입

  • 숫자(Int, UInt, Float, Double)
  • Bool
  • 문자(String, Character)
  • Tuple
  • Any

 

 


 

 

 

Int, UInt, Float, Double

 

Int 양수와 음수 모두를 표현할 수 있는 정수형 데이터 타입

UInt 양수만을 표현할 수 있는 부호 없는 정수형 데이터 타입

Float 32비트 부동 소수점을 표현하는 데이터 타입 

Double 64비트 부동 소수점을 표현하는 데이터 타입

 

 


 

 

 

Bool

 

truefalse를 표현할 수 있는 데이터 타입

 

 


 

 

 

String, Character

 

String  문자열을 표현하는 데이터 타입으로 텍스트를 표현

Character  하나의 문자를 표현하는 데이터 타입

let catCharacters: [Character] = ["C", "a", "t", "!", "🐱"]
let catString = String(catCharacters)
print(catString)
// Prints "Cat!🐱"

 

 


 

 

 

Tuple

 

여러 값을 하나로 그룹화한 값

관련 값의 단순한 그룹에 유용

복잡한 데이터 구조를 만드는 데는 적합하지 않음

 구조체와 비슷하며 실제 간단한 자료형을 만들 때에, 구조체 대신 튜플을 사용하기도 함

 

 값에 접근할 때에도 [] 대신 .을 사용 

var coffeeInfo = ("아메리카노", 5100)
coffeeInfo.0 // 아메리카노
coffeeInfo.1 // 5100
coffeeInfo.1 = 5100

 

 

 Tuple의 파라미터에 이름을 붙일 수 있음 

var namedCoffeeInfo = (coffee: "아메리카노", price: 5100)
namedCoffeeInfo.coffee // 아메리카노
namedCoffeeInfo.price // 5100
namedCoffeeInfo.price = 5100

 

 

 튜플의 타입 어노테이션 

var coffeeInfo: (String, Int)
var namedCoffeeInfo: (coffee: String, price: Int)

 

 

 여러 변수에 값을 지정할 수도 있음 

let (coffee, price) = ("아메리카노", 5100)
coffee // 아메리카노
price // 5100

 

 

 튜플이 가진 값을 가지고 변수에 값을 지정할 때, 무시하고 싶은 값이 있다면 _ 키워드를 사용 

- "라떼"라는 첫 번째 값을 무시

let (_, latteSize, lattePrice) = ("라떼", "Venti", 5600)
latteSize // Venti
lattePrice // 5600

 

 

 튜플을 반환하는 함수 

/// 커피 이름에 맞는 커피 가격 정보를 반환합니다. 일치하는 커피 이름이 없다면 `nil`을 반환합니다.
/// - parameter name: 커피 이름
/// - returns: 커피 이름과 가격 정보로 구성된 튜플을 반환합니다.
func coffeeInfo(for name: String) -> (name: String, price: Int)? {
  let coffeeInfoList: [(name: String, price: Int)] = [
    ("아메리카노", 5100),
    ("라떼", 5600),
  ]
  for coffeeInfo in coffeeInfoList {
    if coffeeInfo.name == name {
      return coffeeInfo
    }
  }
  return nil
}

coffeeInfo(for: "아메리카노")?.price // 5100
coffeeInfo(for: "에스프레소")?.price // nil

let (_, lattePrice) = coffeeInfo(for: "라떼")!
lattePrice // 5600

 


 

 

 

Any

 

다양한 데이터 타입의 값 수용

Any 배열을 만들면 특정 타입의 배열이 아니라 여러 타입을 담을 수 있음

Any 데이터 형을 대입하려면 반드시 형 변환 필요

// Any 타입의 변수에 정수, 실수, 문자열 등 어떤 값이든 할당 가능
var value: Any

value = 5
print(value) // 출력: 5

value = 3.14
print(value) // 출력: 3.14

value = "Hello, World!"
print(value) // 출력: Hello, World!

 

 

 주의 

var anyArray: [Any] = [1,"Hi", true]

var anyValue: Any = 1000
anyValue = "어떤 타입도 수용 가능"
anyValue = 12345.67

// 컴파일 에러
let doubleValue: Double = anyValue  
// 🚨 에러 메시지: Cannot convert value of type 'Any' to specified type 'Double'

- Any 타입에 Double 값을 넣는 것은 가능하지만 Any는 Double 과 엄연히 다른 타입이 때문에 

   Double 타입의 값에 Any 타입의 값을 할당할 때에는 명시적으로 타입을 변환해 주어야 한다. 

 

 

 

Recent Posts
Visits
Today
Yesterday
Archives
Calendar
«   2024/12   »
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 31