๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

Language/Swift

Swift ) ๊ธฐ์ดˆ ๋ฌธ๋ฒ• 4์ผ์ฐจ - For ๋ฐ˜๋ณต๋ฌธ & Wildcard Pattern

๋ฐ˜์‘ํ˜•

4์ผ์ฐจ - for ๋ฐ˜๋ณต๋ฌธ 

for index in 0...5 {
    print("ํ˜ธํ˜ธ index: \(index)")
}

for index in 0..<5 {
    print("ํ˜ธํ˜ธ index: \(index)")
}

for index in 0..<5 where index % 2 == 0 {
    print("ํ˜ธํ˜ธ ์ง์ˆ˜ index: \(index)")
}

//var randomInts: [Int] = []
var randomInts: [Int] = [Int]()

for _ in 0..<25 {
    let randomNumber = Int.random(in: 0...100)
    randomInts.append(randomNumber)
}

print("randomInts: \(randomInts)")

๊ฐ’์€ ํ•„์š”์—†๊ณ  ๋ฐ˜๋ณต๋งŒ ์‹œํ‚ค๊ณ  ์‹ถ์„ ๋• _ ( ์™€์ผ๋“œ์นด๋“œ ํŒจํ„ด )์‚ฌ์šฉ 

 

๐ŸŒ€ ์™€์ผ๋“œ์นด๋“œ ํŒจํ„ด์ด๋ž€?

- ๊ฐ’์„ ํ•ด์ฒดํ•˜๊ฑฐ๋‚˜ ๋ฌด์‹œํ•˜๋Š” ํŒจํ„ด์ค‘ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค.

- ๋งค๊ฐœ๋ณ€์ˆ˜์—์„œ ๋งŽ์ด ์‚ฌ์šฉํ–ˆ๋˜ ์™€์ผ๋“œ์นด๋“œ ์‹๋ณ„( _ )์„ ์‚ฌ์šฉํ•œ๋‹ค๋Š”๊ฒƒ์€ ์ด ์ž๋ฆฌ์— ์˜ฌ๊ฒƒ์ด ๋ฌด์—‡์ด๋“  ์ƒ๊ด€ํ•˜์ง€ ๋ง๋ผ๋Š” ๋œป์ž…๋‹ˆ๋‹ค.

- ์™€์ผ๋“œ์นด๋“œ ์‹๋ณ„์ž๊ฐ€ ์œ„์น˜ํ•œ ๊ณณ์˜ ๊ฐ’์€ ๋ฌด์‹œํ•˜๋ผ๋Š” ์˜๋ฏธ 

- ์ด ํŒจํ„ด์€ for๊ตฌ๋ฌธ์ด๋‚˜, switch๊ตฌ๋ฌธ์— ๋งŽ์ด ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

 

let string: String = "ABC"

switch string {
case _: print(string)   // ABC -> ์–ด๋–ค ๊ฐ’์ด ์™€๋„ ์ƒ๊ด€์—†๊ธฐ์— ํ•ญ์ƒ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.
}

let optionalString: String? = "ABC"

switch optionalString {
case "ABC"?: print(optionalString)  // optionalString์ด Optional("ABC")์ผ ๋•Œ๋งŒ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.
case _?: print("Has value, but not ABC") // optionalString์ด Optional("ABC") ์™ธ์˜ ๊ฐ’์ด ์žˆ์„ ๋•Œ๋งŒ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.
case nil: print("nil")  // ๊ฐ’์ด ์—†์„ ๋•Œ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.
}  // Optional(“ABC”)

let abc = ("ABC", 3, "English")

switch abc {
case ("ABC", _, _): print("ABC")   // ์ฒซ ๋ฒˆ์งธ ์š”์†Œ๊ฐ€ "ABC"์ผ ๋•Œ๋งŒ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.
case (_, _, _): print("์•„๋ฌด๊ฑฐ๋‚˜") // ๊ทธ ์™ธ ์–ธ์ œ๋“ ์ง€ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.
}

 

์™€์ผ๋“œ ์นด๋“œ ํŒจํ„ด์ด ์ ์šฉ๋œ ํ•จ์ˆ˜ ์˜ˆ์ œ 

func todayMenu(menu: String) {
	print("์˜ค๋Š˜์˜ ๋ฉ”๋‰ด๋Š” \(menu)์ž…๋‹ˆ๋‹ค.")
}

todayMenu(menu: "ํ”ผ์ž")

// ์™€์ผ๋“œ ์นด๋“œ ํŒจํ„ด ์ ์šฉ
func todayMenu(_ menu: String) {
	print("์˜ค๋Š˜์˜ ๋ฉ”๋‰ด๋Š” \(menu)์ž…๋‹ˆ๋‹ค.")
}

todayMenu("ํ”ผ์ž")

ํŒŒ๋ผ๋ฏธํ„ฐ ์ด๋ฆ„ ๋ช…์‹œํ•˜๋Š” ๋ถ€๋ถ„์ด ์ƒ๋žต๋˜์–ด ํ˜ธ์ถœํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค! 

์ด ํŒจํ„ด์€ function, for-in, if let, guard let ๋“ฑ๋“ฑ ๋‹ค์–‘ํ•œ ๊ณณ์—์„œ ํ™œ์šฉ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

๋ฐ˜์‘ํ˜•