๊ท๋ ๋ฐ ๋ก์ฌ
์๋ก์ด ๊ตฌํ์ Scala, Rust ๋ฐ F#์์ ์ ๊ณต๋๋ "์ผ์น" ์ฐ์ฐ์์ ๋งค์ฐ ์ ์ฌํฉ๋๋ค. ์ด ์ฐ์ฐ์๋ ์ง์ ๋ ํํ์์ ๊ฒฐ๊ณผ๋ฅผ "case" ์ฐ์ฐ์๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๋ธ๋ก์ ๋์ด๋ ํจํด ๋ชฉ๋ก๊ณผ ๋น๊ตํฉ๋๋ค. C, Java ๋ฐ JavaScript์์ ์ฌ์ฉํ ์ ์๋ "์ค์์น" ์ฐ์ฐ์์ ๋ฌ๋ฆฌ "์ผ์น" ๊ธฐ๋ฐ ํํ์์ ํจ์ฌ ๋ ๋ง์ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค.
def http_error(์ํ):
์ผ์น ์ํ:
400์ ๊ฒฝ์ฐ :
"์๋ชป๋ ์์ฒญ"์ ๋ฐํํฉ๋๋ค.
์ผ์ด์ค 401|403|404:
"ํ์ฉ๋์ง ์์" ๋ฐํ
418์ ๊ฒฝ์ฐ :
"๋๋ ์ฐป์ฃผ์ ์์
๋๋ค"๋ฅผ ๋ฐํํฉ๋๋ค.
์ฌ๋ก_:
"๋ค๋ฅธ ๊ฒ"์ ๋ฐํํฉ๋๋ค.
์๋ฅผ ๋ค์ด ๊ฐ์ฒด, ํํ, ๋ชฉ๋ก ๋ฐ ์์ ์ํ์ค์ ์์ถ์ ํ์ด ๊ธฐ์กด ๊ฐ์ ๊ธฐ๋ฐ์ผ๋ก ๋ณ์๋ฅผ ๋ฐ์ธ๋ฉํ ์ ์์ต๋๋ค. ์ค์ฒฉ๋ ํ ํ๋ฆฟ์ ์ ์ํ๊ณ , ํ ํ๋ฆฟ์ ์ถ๊ฐ "if" ์กฐ๊ฑด์ ์ฌ์ฉํ๊ณ , ๋ง์คํฌ("[x, y, *rest]"), ํค/๊ฐ ๋งคํ(์: {"bandwidth": b, "latency")์ ์ฌ์ฉํ ์ ์์ต๋๋ค. โ: l} "๋์ญํญ" ๋ฐ "๋๊ธฐ ์๊ฐ" ๊ฐ๊ณผ ์ฌ์ ์ ์ถ์ถํ๊ณ , ํ์ ํ ํ๋ฆฟ(":=" ์ฐ์ฐ์)์ ์ถ์ถํ๊ณ , ํ ํ๋ฆฟ์ ๋ช ๋ช ๋ ์์๋ฅผ ์ฌ์ฉํฉ๋๋ค. ํด๋์ค์์๋ "__match__()" ๋ฉ์๋๋ฅผ ์ฌ์ฉํ์ฌ ์ผ์น ๋์์ ์ฌ์ฉ์ ์ ์ํ ์ ์์ต๋๋ค.
๋ฐ์ดํฐ ํด๋์ค์์ ๋ฐ์ดํฐ ํด๋์ค ๊ฐ์ ธ์ค๊ธฐ
@๋ฐ์ดํฐํด๋์ค
์์
ํฌ์ธํธ:
x:์ ์
y:int
def ์ด๋์(์ ):
์ผ์น์ :
์ฌ๋ก ํฌ์ธํธ(0, 0):
print("์์ฐ์ง")
๊ฒฝ์ฐ ํฌ์ธํธ(0, y):
์ธ์(f"Y={y}")
๊ฒฝ์ฐ ํฌ์ธํธ(x, 0):
์ธ์(f"X={x}")
์ผ์ด์ค ํฌ์ธํธ():
print("๋ค๋ฅธ ๊ณณ")
์ฌ๋ก_:
print("ํฌ์ธํธ๊ฐ ์๋๋๋ค.")
์ผ์น์ :
x == y์ธ ๊ฒฝ์ฐ Point(x, y):
print(f"Y=X at {x}")
์ผ์ด์ค ํฌ์ธํธ(x, y):
print(f"๋๊ฐ์ ์ ์์ง ์์")
๋นจ๊ฐ์, ๋
น์, ํ๋์ = 0, 1, 2
์์ ์ผ์น:
์ผ์ด์ค .RED:
print("๋นจ๊ฐ์์ด ๋ณด์ฌ์!")
์ผ์ด์ค .GREEN:
print("์๋๋ ์ด๋ก์์
๋๋ค")
์ผ์ด์ค .BLU
E:
print("์ฐ์ธํ ๊ธฐ๋ถ์ด์์ :(")
๊ฒํ ๋ฅผ ์ํด ์ธํธ๊ฐ ์ค๋น๋์์ต๋๋ค.
์ถ์ฒ : opennet.ru