[Swift 문법]와일드 카드

뜨또·2024년 5월 20일
0

iOS

목록 보기
1/3
post-thumbnail

와일드 카드 패턴?

  • 값을 해체(추출)하거나, 무시하는 패턴
  • 와일드 카드 식별자가 위치한 곳의 값은 무시해라 라는 뜻..?
  • for, switch 구문에서 많이 사용됨

→ 함수의 이름이 명확한 경우엔 괜찮지만 복잡한 기능을 담당하는 함수에선 과도한 생략이 가독성을 해치는 결과를 초래할 수 있으니 적절히 사용


사용 예시

1. 함수의 매개변수에서의 활용

// 매개변수에 와일드 카드를 사용하지 않고 함수를 만들었을 때
func todayMenu(menu: String) {
	print("오늘의 메뉴는 \(menu)입니다.")
}
todayMenu(menu: "피자")


// 매개변수에 와일드 카드를 사용해서 함수를 만들었을 때
func todayMenu(_ menu: String) {
	print("오늘의 메뉴는 \(menu)입니다.")
}
todayMenu("피자")

2. switch문에서의 활용

// 예시 1
let string: String = "ABC"

switch string {
case _: 
	print(string)
}


// 예시 2
let optionalString: String? = "ABC"

switch optionalString {
case "ABC"?:
	print(optionalString) // optional("ABC")가 출력
case _?: // ABC빼고 나머지 값들
	print("이값은 ABC가 아닙니다.")
case nil: // 값이 아예 없을때
	print("nil이니깐 값이 없습니다.")
}


// 예시 3
// 와일드 카드가 존재하는 값은 무시하고, 와일드카드가 없는 실존 값만 비교
let hoon = ("HOON",28,"male")

switch hoon {
case("HOON", _, _):
	print("It's HOON") // 출력
case(_, _, _):
	print("아무나")
}

3. for문에서의 활용

for _ in 0..<3 {
	print("hello")
}

/* 
hello
hello
hello
*/

→ for문은 와일드 카드 식별자를 사용하면 해당 변수를 쓰지않고 범위 지정자를 통해 지정해준 범위만큼 for문이 돈다고 생각하면 됩니다.


참고: https://dvlpr-chan.tistory.com/21

profile
멋있는 개발자(가 되고 싶은) 이갈

0개의 댓글