iOS/Swift 문법

[Swift 문법] 타입 선언과 타입 추론, 튜플

초코비23 2021. 12. 21. 21:00

스위프트는 데이터 타입이 안전한 프로그래밍 언어에 속한다. 즉 변수의 데이터 타입이 한번 정해지면 그 변수는 다른 타입의 데이터를 저장하는 데 사용될 수 없으며, 컴파일 에러가 발생하게 된다. 데이터 타입이 느슨한(loosely typed) 프로그래밍 언어는 변수를 선언한 후에 다른 데이터 타입을 저장할 수 있는 언어다.

 

타입 선언과 타입 추론

상수, 변수의 타입을 지정하는 방법은 두가지가 있다.

1. 변수나 상수를 선언할 때 타입 선언(type annotation)을 사용하는 것이다. 이것은 변수나 상수 이름 뒤에 콜론을 쓰고 타입을 선언하는 것이다.

var userCount: Int = 10

 

2. 선언부에서 타입 선언이 없다면 스위프트 컴파일러는 타입 추론(type inference)이라는 기술을 사용하여 변수 또는 상수의 타입을 지정한다. 컴파일러가 타입 추론을 사용하게 되면 변수 또는 상수가 초기화되는 시점에 할당된 값의 타입으로 지정한다.

var signalStrength = 2.231
let companyName = "My Company"

이 코드를 컴파일하면 signalStrength를 Double 타입(스위프트에서 실수는 Double이 기본), 상수 companyName은 String타입으로 지정된다.

 

*타입 선언 없이 상수를 선언하게 될 경우에는 반드시 선언 시점에서 값을 할당해야 한다.

let bookTitle = "SwiftUI Essentials"

 

단, 아래의 코드와 같이 상수를 선언할 때 타입 선언을 사용하면 딱 1번 값을 나중에 할당할 수 있다.

let bookTitle: String
bookTitle = "SwiftUI Essentials"

 

 

 

 

스위프트 튜플

튜플은 여러 값을 하나의 항목으로 임시적으로 그루핑하는 매우 간단한 방법이다.

서로 다른 타입의 값들도 저장될 수 있다. 예를 들어 정수, 실수, 문자열을 갖는 튜플을 만들수도 있다.

let myTuple = (10, 432.433, "THis is a String")

튜플에 저장된 값을 얻는 방법은 다양하다. 가장 첫번째 값의 인덱스는 0이다.

예를 들어 튜플의 인덱스 2번에 있는 값을 불러온다면

let myTuple = (10, 432.433, "This is a String")
let myString = myTuple.2
print(myString)

// This is a String

다른 방법으로 하나의 구문으로 튜플의 있는 모든 값을 추출할 수 있다.

또한 원하지 않는 인덱스의 값은 _ 를 사용하여 해당 인덱스의 값은 무시된다.

var (myInt, _, myString) = myTuple

// myInt = 10 , myString = "This is a String"

튜플을 생성할 때 각각의 값을 변수에 할당할 수도 있다.

let myTuple = (count: 10, length: 432.433, message: "This is a String")

print(myTuple.message)
// This is a String

 

 

 

 

출처 : 핵심만 골라 배우는 SwiftUI 기반의 iOS 프로그래밍

책을 보면서 내용을 정리했습니다.. 혹시 틀린 내용이 있다면 댓글로 언제나 말씀해주세요!!!☺️