MUKER_DEV with iOS

swift / ํด๋กœ์ €๋ฅผ ์™œ ์“ฐ๋Š”๊ฐ€?! ํด๋กœ์ €๋ฅผ ์ดํ•ดํ•ด๋ณด์ž ๋ณธ๋ฌธ

๐ŸŽ iOS ๊ฐœ๋ฐœ/Swift

swift / ํด๋กœ์ €๋ฅผ ์™œ ์“ฐ๋Š”๊ฐ€?! ํด๋กœ์ €๋ฅผ ์ดํ•ดํ•ด๋ณด์ž

MUKER 2022. 5. 12. 16:19

ํด๋กœ์ €๋Š” ํ˜๋ช…์ž„

 

ํ•จ์ˆ˜๋ฅผ ์ •์˜ํ• ๋•Œ ์—„์ฒญ ์ƒ๊ฐ๋ณด๋‹ค ๋งŽ์€ ์ฝ”๋“œ๋ฅผ ์ค„์—ฌ์คŒ

 

์ผ๋‹จ!

 

๊ธฐ๋ณธ์ ์ธ ๊ฐ„๋‹จํ•œ ์ˆซ์ž ๋‘๊ฐœ๋ฅผ ๋”ํ•˜๋Š” ํ•จ์ˆ˜๋ฅผ ๋งŒ๋“ค์–ด๋ด„

 

func calculator (n1: Int, n2: Int, operation: (Int, Int) -> Int ) -> Int {
    return operation(n1, n2)
}


func add (no1: Int, no2: Int) -> Int {
    return no1 + no2
}

calculator(n1: 3, n2: 3, operation: add)

 

calculator ํ•จ์ˆ˜๋ฅผ ๋งŒ๋“ค๊ณ  ์ฒซ๋ฒˆ์งธ, ๋‘๋ฒˆ์งธ ์ธ์ž์— ๋‘˜์ด ๋”ํ•  ๊ฐ’์„ ๋ฐ›๊ณ 

 

์„ธ๋ฒˆ์งธ ์ธ์ž์— ํ•จ์ˆ˜๋ฅผ ๋ฐ›์•„๋ฒ„๋ฆผ

 

์ธ์ž์— ๋“ค์–ด๊ฐ„ ํ•จ์ˆ˜ operation์€ return๊ฐ’์œผ๋กœ์„œ ๋‘๊ฐœ์˜ ๊ฐ’์„ returnํ•ด์ค„๊ฑฐ์ž„

 

๊ทธ๋Ÿผ add ํ•จ์ˆ˜๋„ ๊ฐ„๋‹จํ•˜๊ฒŒ ๋งŒ๋“ค์–ด ๋ด„

 

์ด์ œ ๋งŒ๋“ค์–ด๋†“์€ calculatorํ•จ์ˆ˜ ์ฒซ๋ฒˆ์งธ,๋‘๋ฒˆ์งธ ์ธ์ž์— ๊ฐ๊ฐ 3์„ ๋„ฃ๊ณ  3๋ฒˆ์งธ ์ธ์ž ํ•จ์ˆ˜๋ถ€๋ถ„์— ๋งŒ๋“ค์–ด ๋†“์€ ํ•จ์ˆ˜ add๋ฅผ ๋„ฃ์–ด์คŒ

 

add๋Š” calculator์— ์žˆ๋Š” n1,n2๋ฅผ ์ธ์ž๋กœ ๊ฐ€์ง€๊ณ  ๋”ํ•ด์ค€๋‹ค์Œ Int๊ฐ’์œผ๋กœ returnํ•˜๊ฒŒ ๋จ

 

์•„์ฃผ ๊ธฐ๋ณธ์ ์ธ ๋”ํ•˜๊ธฐ ํ•จ์ˆ˜

 

๊ทผ๋ฐ ์—ฌ๊ธฐ์„œ ํด๋กœ์ ธ๋ฅผ ํ™œ์šฉํ•˜๋ฉด ์—„์ฒญ๋‚˜๊ฒŒ ์ฝ”๋“œ๋ฅผ ์•„๋‚„ ์ˆ˜ ์žˆ์Œ

 

ํด๋กœ์ €์˜ ํŠน์ง•์€ ํ•จ์ˆ˜์˜ ์ด๋ฆ„์ด ํ•„์š”๊ฐ€ ์—†๋‹ค!

 

func add ๊ฐ€ ํ•„์š”๊ฐ€ ์—†๋‹ค๋Š” ๋ง!

 

๊ทธ๋Ÿผ func add๋ฅผ ์ง€์šฐ๊ณ  ๋‚จ์•„์žˆ๋Š” ์‹ ๊ณ ๋Œ€๋กœ ์„ ์–ธ๋œ calculator๋กœ ์˜ฎ๊ฒจ์ค€๋‹ค!

 

func calculator (n1: Int, n2: Int, operation: (Int, Int) -> Int ) -> Int {
    return operation(n1, n2)
}

calculator(n1: 3, n2: 3, operation: { (no1: Int, no2: Int) -> Int in
    return no1 * no2
})

 

๋˜‘๊ฐ™์€ ๋”ํ•˜๊ธฐ ํ•จ์ˆ˜์ง€๋งŒ ํ™•์—ฐํžˆ ๋‹ฌ๋ผ์ง„ ๋ชจ์Šต

 

๋ญ๊ฐ€ ๋‹ฌ๋ผ์กŒ๋‚˜!

 

์œ„์— ๋งํ•œ๋Œ€๋กœ func add๋ฅผ ์ง€์šฐ๊ณ  ๋‚จ์•„์žˆ๋Š” ์‹์ด ์„ ์–ธ๋œ ํ•จ์ˆ˜ 3๋ฒˆ์งธ ์ธ์ž์— ์™ ๋“ค์–ด๊ฐ

 

 

Int ๋’ค์— ๋Œ€๊ด„ํ˜ธ๋Š” ์ œ์ผ ์•ž์œผ๋กœ ๋‚˜์˜ค๊ณ  ๊ทธ ์ž๋ฆฌ์—” in์ด ์ฐจ์ง€ํ•˜๊ฒŒ ๋จ

 

์šฐ๋ฆฌ๋Š” ์—ฌ๊ธฐ์„œ ์ฝ”๋“œ๋ฅผ ๋” ์ค„์ผ ์ˆ˜ ์žˆ์Œ

 

func calculator (n1: Int, n2: Int, operation: (Int, Int) -> Int ) -> Int {
    return operation(n1, n2)
}


calculator(n1: 3, n2: 3, operation: { (no1, no2) in
    no1 * no2
})

 

swift๋Š” ํƒ€์ž…์ถ”๋ก ์ด ๊ฐ€๋Šฅํ•จ ๊ทธ๋ž˜์„œ ๋ช…์‹œ๋œ Intํƒ€์ž…์„ ์‹น ๋นผ๊ณ 

 

return๋„ ๋นผ์คŒ!

 

๊ฑฐ๊ธฐ๋‹ค ๋˜ ์ค„์ผ ์ˆ˜ ์žˆ๋‹ค

 

func calculator (n1: Int, n2: Int, operation: (Int, Int) -> Int ) -> Int {
    return operation(n1, n2)
}


let result = calculator(n1: 3, n2: 3, operation: { $0 + $1 })

print(result)

 

$0์€ ์ฒซ๋ฒˆ์งธ ์ธ์ž๊ฐ’์„ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ๊ณ 

 

$1์€ ๋‹น์—ฐํžˆ ๋‘๋ฒˆ์งธ ์ธ์ž๊ฐ’์„ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ์Œ

 

๊ฑฐ๊ธฐ๋‹ค return ๋ถ€๋ถ„๋„ ๊ทธ๋ƒฅ ์ธ์ž๊ฐ’์—๋‹ค ๊ฐ€์ ธ์™€๋ฒ„๋ฆฌ๊ธฐ!

 

result๋ฅผ ์ถœ๋ ฅํ•ด๋ด๋„ 6์ด ์ž˜ ๋‚˜์˜จ๋‹ค

 

๊ทผ๋ฐ ๋˜ ์ค„์ผ ์ˆ˜ ์žˆ์Œ!!!

 

func calculator (n1: Int, n2: Int, operation: (Int, Int) -> Int ) -> Int {
    return operation(n1, n2)
}


let result = calculator(n1: 3, n2: 3 { $0 + $1 }

print(result)

 

operation์œผ๋กœ ๋ช…์‹œ๋œ ๋ถ€๋ถ„๋„ ์ง€์›Œ์ค„ ์ˆ˜ ์žˆ์Œ

 

์ง€๊ธˆ ์ด ํ˜•ํƒœ๋ฅผ ํ›„ํ–‰ํด๋กœ์ ธ๋ผ๊ณ  ํ•จ!

 

๊ทธ์ € ๋‹จ ํ•œ์ค„๋กœ ์ฝ”๋“œ๊ฐ€ ์••์ถ•์ด ๋์Œ

 

์ด๊ฒŒ ์—„์ฒญ๋‚˜๊ฒŒ ํ•จ์ถ•์ ์ด๊ณ  ๊ฐ€๋…์„ฑ์ด ์ข‹์ง€๋งŒ

 

์ต์ˆ™ํ•˜์ง€ ์•Š์€์‚ฌ๋žŒ๋“ค์€ ํด๋กœ์ € ํ˜•ํƒœ๊ฐ€ ์˜คํžˆ๋ ค ๊ฐ€๋…์„ฑ์ด ์•ˆ์ข‹๊ฒŒ ๋จ!

 

๊ฐ„๋‹จํ•œ ํด๋กœ์ €ํ˜•ํƒœ ๋งŒ๋“ค๊ธฐ ๋!