[D] ν•¨μˆ˜

[원본 링크]

ν•¨μˆ˜ 선언법도 C λ“±κ³Ό μœ μ‚¬ν•˜λ‹€.

λ°˜ν™˜νƒ€μž… ν•¨μˆ˜λͺ…(νƒ€μž…1 인자1, νƒ€μž…2 인자2, ...)
{ ... }

μ•„λž˜ μ½”λ“œλŠ” λ°˜ν™˜μ΄λ‚˜ 인자 없이 좜λ ₯만 ν–‰ν•˜λŠ” κ°„λ‹¨ν•œ ν•¨μˆ˜μ˜ μ˜ˆλ‹€. image

image

μ•„λž˜ μ½”λ“œλŠ” 인자둜 받은 두 μ •μˆ˜λ₯Ό 더해 λ°˜ν™˜ν•΄μ£ΌλŠ” κ°„λ‹¨ν•œ μ˜ˆλ‹€. image

image


참쑰에 μ˜ν•œ 전달
d의 ν•¨μˆ˜λ„ c λ“±κ³Ό λ§ˆμ°¬κ°€μ§€λ‘œ, 값에 μ˜ν•œ μ „λ‹¬λ§Œμ„ μˆ˜ν–‰νžŒλ‹€.

λ•Œλ¬Έμ— μ•„λž˜μ™€ 같은 ν•¨μˆ˜λŠ” 전달받은 λ³€μˆ˜μ— λŒ€ν•œ 본질적인 변경을 μˆ˜ν–‰ν•˜μ§€ μ•ŠλŠ”λ‹€. image

image

전달받은 λ³€μˆ˜λ₯Ό 직접 μ°Έμ‘°ν•˜κ³ μž ν•œλ‹€λ©΄, 인자 νƒ€μž… μ•žμ— refλ₯Ό 뢙이면 λœλ‹€. image

image


μˆœμˆ˜ν•¨μˆ˜
ν•¨μˆ˜ μ„ μ–Έ μ•žμ— pureλ₯Ό 뢙이면 μˆœμˆ˜ν•¨μˆ˜κ°€ λœλ‹€.
μˆœμˆ˜ν•¨μˆ˜μ—μ„œλŠ” μ „μ—­λ³€μˆ˜λ₯Ό λ³€κ²½ν•˜λŠ” λ“±μ˜ μ‚¬μ΄λ“œμ΄νŽ™νŠΈλ₯Ό μœ λ°œν•˜λŠ” κΈ°λŠ₯을 μ“Έ 수 μ—†λ‹€.

κ·Έλž˜μ„œ μ•„λž˜μ˜ foo ν•¨μˆ˜λŠ” μ „μ—­λ³€μˆ˜λ₯Ό λ³€κ²½ν•˜κ³  좜λ ₯ν•˜λŠ” κ°„λ‹¨ν•œ ν•¨μˆ˜μ§€λ§Œ image

image

pureλ₯Ό 뢙이면 μ—λŸ¬λ‘œ μ²˜λ¦¬ν•œλ‹€. image

image

또, μˆœμˆ˜ν•¨μˆ˜μ—μ„œλŠ” μˆœμˆ˜ν•¨μˆ˜λ§Œ ν˜ΈμΆœν•  수 μžˆλ‹€. writeln 같은 κ²½μš°λ„ IOλ₯Ό μˆ˜ν–‰ν•˜λ―€λ‘œ μˆœμˆ˜ν•˜μ§€ μ•Šλ‹€. λ•Œλ¬Έμ— μ•„λž˜μ™€ 같은 μ½”λ“œλŠ” μ—λŸ¬λ₯Ό λ˜μ§„λ‹€. image

image

λ‹€λ§Œ 언어둠적 μ˜λ―Έμ—μ„œμ˜ μˆœμˆ˜ν•¨μˆ˜μ™€λŠ” λ‹€λ₯΄κ²Œ, 인자둜 받은 값은 λ³€κ²½ν•  수 μžˆλ‹€. image

image

κ·Έλ ‡λ‹€.


μ°Έμ‘°
https://dlang.org/spec/function.html