본문 바로가기
Swift/기초

26. 스위프트 기초 문법[로또(5) - 튜플]

by UDDT 2025. 2. 2.

Swift/기초 카테고리에 업로드한 모든 내용은 KxCoding 기초 강의를 토대로 작성하였습니다.

 

튜플

  1. 튜플 문법

// Tuple : ()로 감싸져서 값이 2개 이상 나열된 Type
let a = (1, 2, "3")
let a: (Int, Int, Int) = (1, 2, 3)

let b = ("문자열", 123, 123.0)
print(b.0)
문자열

// 튜플 값은 바꿀 수 있지만 값의 Type을 바꿀 수는 없음
var b = ("문자열", 123, 123.0)

let str = b.0



b.0 = "새로운 문자열"

b.0 = 1             // 오류 발생 : Cannot assign value of type 'Int' to type 'String'

// Unnamed Tuple : 이름이 없는 튜플, 이름이 없기 때문에 인덱스로 접근해야 함
// Named Tuple : 이름이 있는 튜플

 

 배열

  1. 배열 문법

// 배열(array) : []로 감싸져서 동일한 Type의 값이 2개 이상 나열된 Type
let a = [1, 2, 3]
// 배열은 반드시 동일한 Type의 값만 저장해야 함

 

 색상을 가져오는 Method 만들기

  1. 코드 추가

func getColors(from number: Int?) -> (UIColor, UIColor) {

}

 

  2. 숫자에 따라 색을 바꾸는 switch문 위치를 method에 붙여넣기

 

  3. 파라미터(sortedNums[index])를 number로 바꾸기                        * 값을 비교하려면 Int?는 반드시 unwrapping을 해야함

 

  4. guard문을 사용하여 Unwrapping                             * 함수에 Return 값이 있기 때문에, 맞춰줘야 함.

 

  5. switch문 수정

 

  6. 메소드를 호출하는 값 추가                             * getColors의 0번(backgroundColor)과 1번(textColor) 리턴값을 받음

 

  7. 코드의 가독성을 높이기 위해 Unnamed Tuple에 이름을 설정하는 코드로 수정

// Unnamed Tuple : 이름이 없기 때문에 Index로만 호출 가능
func getColors(from number: Int?) -> (UIColor, UIColor) {

}

// Named Tuple : 이름이 있고, 이름과 Index 둘다 호출 가능
func getColors(from number: Int?) -> (backgroundColor: UIColor, textColor: UIColor) {

}

 

  8. Index로 호출하던 코드를 Name으로 호출 (둘다 가능해서 상관은 없음)

 

  9. 보너스 번호 코드 수정

let colors = getColors(from: nil)
// 번호와 상관없이 컬러가 일정하기 때문에 parameter에 nil을 전달

 

 Method를 호출한 뒤 값에 접근하는 방식의 차이

  1. Method를 호출하고, 바로 값에 접근하는 경우 : Method는 2개를 리턴하는데 Method를 전부 활용하지 못하고 하나는 버린 것.

  2. Method를 상수에 저장한 다음 값에 접근하는 경우 : Method를 상수에 저장하고 하나씩 꺼내 쓰는 것.

     (1번의 경우에 중복다운로드를 하게 만들 수 있기 때문에, 코드를 작성할 때 효율성을 고려하면 좋음)

 

 

최근댓글

최근글

skin by © 2024 ttuttak