[Scala] ๋ถ„๊ธฐ๋ฌธ

[์›๋ณธ ๋งํฌ]

์ผ๋ฐ˜ ๋ถ„๊ธฐ if-else๋ฌธ
if-else๋ฌธ์€ ์ž๋ฐ”์™€ ์‚ฌ์šฉ๋ฒ•์ด ๊ฑฐ์˜ ๋™์ผํ•˜๋‹ค. ๋ญ ๋˜‘๊ฐ™์ด ์ด๋ ‡๊ฒŒ ์“ธ์ˆ˜์žˆ๋‹ค. image

image

๋‹ค๋งŒ ์—ฌ๊ธฐ์„œ ๋” ์ถ”๊ฐ€๋œ ๊ธฐ๋Šฅ์€ ์žˆ๋‹ค. if๋‚˜ else ๋‚ด์˜ ๊ตฌ๋ฌธ์„ ๋ฐ˜ํ™˜์‹์œผ๋กœ ์‚ฌ์šฉํ• ์ˆ˜๋„ ์žˆ๋‹จ๊ฒƒ์ด๋‹ค.
์œ„์˜ ์ฝ”๋“œ๋ฅผ ๋ฐ˜ํ™˜์‹์œผ๋กœ ๋ณ€ํ™˜ํ•˜๋ฉด ์ด๋ ‡๊ฒŒ ๋œ๋‹ค. image

image


ํŒจํ„ด๋งค์นญ match
match๋Š” ์ž๋ฐ”์˜ switch๋ฌธ์„ ํ™•์žฅํ•œ ํ˜•ํƒœ๋ผ๊ณ ๋„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค. ๋” ์ž์œ ๋กญ๊ณ  ๊ธฐ๋Šฅ์ด ํ’๋ถ€ํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

๋Œ€์ถฉ ์•„๋ž˜์˜ ๊ตฌ์กฐ๋ฅผ ๊ฐ€์ง„๋‹ค. ๊ฐ’์„ ๋’ค์— ์•ˆ์“ฐ๊ณ  ์•ž์—์“ฐ๋Š”๊ฒŒ ์ข€ ํŠน์ดํ•˜๋‹ค.

๋งค์นญํ• _๊ฐ’ match
{
**ย ย ย  case ํŒจํ„ด1 => ๋ฌธ์žฅ1

**ย ย ย  case ํŒจํ„ด2 => ๋ฌธ์žฅ2

**ย ย ย  ...**
**ย ย ย  case ํŒจํ„ดN => ๋ฌธ์žฅN**
}

๊ฐ„๋‹จํ•œ ์˜ˆ์‹œ๋‹ค.
_๋Š” ์™€์ผ๋“œ์นด๋“œ ํŒจํ„ด์ด๋ผ, ๋ญ๋“ ์ง€ ๋“ค์–ด๊ฐˆ ์ˆ˜ ์žˆ๋‹ค๋Š” ๋œป์ด๋‹ค. default ๋ ˆ์ด๋ธ”์— ํ•ด๋‹นํ•œ๋‹ค. image

image

๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ๋ฐ˜ํ™˜์‹์œผ๋กœ๋„ ์‚ฌ์šฉ๊ฐ€๋Šฅํ•˜๋‹ค. image

image

ํƒ€์ž…์œผ๋กœ๋„ ๋ถ„๊ธฐ๋ฅผ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.
๋‹ค๋งŒ ํŒจํ„ด์— ๋“ค์–ด๊ฐ€๋Š” ํƒ€์ž…์€ ์ง‘์–ด๋„ฃ์€ ๋ณ€์ˆ˜์˜ ํƒ€์ž…์ด๊ฑฐ๋‚˜, ์บ์ŠคํŒ…๊ฐ€๋Šฅํ•œ ์„œ๋ธŒํƒ€์ž…์ด์—ฌ์•ผ ํ•œ๋‹ค.

ํŒจํ„ด์„ x:T ์™€ ๊ฐ™์ด ์“ฐ๋ฉด, T ํƒ€์ž…์ด๊ฑฐ๋“  x์— ๋ฐ”์ธ๋”ฉํ•œ๋‹จ ๋œป์ด๋‹ค. ๋ณ€์ˆ˜ ๋ฐ”์ธ๋”ฉ์ด ํ•„์š”์—†๋‹ค๋ฉด _๋ฅผ ์จ๋„ ๋œ๋‹ค.

๊ฐ„๋‹จํ•œ ์˜ˆ์‹œ๋‹ค. image