0.1 ๋ฐํ ์ดํ ์ ๋ฅผ ์ฌ๋ก์ก์ ์๊ฒฌ ์ค ํ๋๋ ๋๊ตฐ๊ฐ๊ฐ ์ผํญ ์ฐ์ฐ์๊ฐ ์๋ ์ด์ ๋ฅผ ๋ฌป๋ ๊ฒ์ด์์ต๋๋ค. ์ด๋ ๊ธฐ๋ฅ์ ์ผ๋ก ์ฐ๋ฆฌ์ if
ํํ์๊ณผ ๋์ผํ๊ธฐ ๋๋ฌธ์
๋๋ค. ๋๋ ์ด ๊ฐ์ ์ ๋๊ฐํ๋ค
์ต๊ทผ์ ์ ๋ ์ธ์ด์ ๊ธฐ๋ฅ์ด ๋น ๋ฅด๊ฒ ์ถ๊ฐ๋๋ ๊ฒ์ ๋ํด ์ฐ๋ คํ๊ณ ์์ผ๋ฉฐ ์ค์ ๋ก ํ์ํ์ง ์์ ์ผ์ ๋ ์ ์ค์ ๊ธฐํด์ผ ํ๋ค๊ณ ์๊ฐํฉ๋๋ค. Rust๊ฐ ๋ฐํ๋์์ ๋ ์๋ ๋ช ๋ น ์ค ํ๋๋ ๊ธฐ๋ฅ์ ์ ๊ฑฐํ๋ ๋ฐ ์ค์ ์ ๋๋ ๊ฒ์ด์์ผ๋ฉฐ(์ธ์ด FAQ์ ์์) ์ฐ๋ฆฌ๊ฐ ๊ทธ๊ฒ์ ์ฑ๊ณตํ๋ค๊ณ ์ฃผ์ฅํ ๋ฐฉ๋ฒ์ด ์๋ค๊ณ ์๊ฐํฉ๋๋ค.
์ผํญ ์ฐ์ฐ์๋ ์ ์ง ๊ด๋ฆฌ๊ฐ ์ ์ ๊ธฐ๋ฅ์ด์ง๋ง ์ ๊ฑฐ ์์๋ ์ํฅ์ด ์ ์ต๋๋ค.
๋๋ ๋์ํ๋ค. ์ผํญ ์ฐ์ฐ์๋ ์๋ ์ด์ ๊ฐ ๊ถ๊ธํฉ๋๋ค.
๋์. JS๋ฅผ ํํ ์ธ์ด๋ก ๋ง๋ค์์ผ๋ฉด ์ข๊ฒ ์ต๋๋ค. ํ๋ฅญํ ๋ฌธ์ฅ/ํํ์ ๋ถํ ์ ?: ์ ๋๊ธฐ๋ฅผ ๋ถ์ฌํ์ง๋ง Rust๋ ๊ทธ๋ฐ ๊ฒ์ด ์๊ณ if-else๋ก ์ถฉ๋ถํฉ๋๋ค.
/์ด๋ค
C/C++์์ ?: ์ฐ์ฐ์๋ฅผ ๋ง์ด ์ฌ์ฉํ๋ ์ ๋ ๊ฐ๊ฒฐํ ๊ตฌ๋ฌธ์ ์ ํธํฉ๋๋ค. ํํ์์ด ๋๋ฌด ๊ธธ์ด์ ํ ์ค์ ๋ค์ด๊ฐ ์ ์์ ๋ ๋ ๋์ ํ์์ ์ง์ ํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
let x = some_very_long_condational
? if_true
: if_false
let x = if some_very_long_condational
{ if_true}
else { if_false}
if_true
๋ฐ if_false
๊ฐ ํ ์ค์ ๋ง์ง ์์ผ๋ฉด ๊ตฌ๋ฌธ์ด ๋ ๋๋น ์ง ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, ์ค๊ดํธ๋ฅผ ์ด๋์ ๋ฐฐ์นํด์ผ ํฉ๋๋ค.
๊ทธ๋ฅ ๋ด 2 ์ผํธ.
์ข์์:
let x = if some_very_long_condational {
if_true
} else {
if_false
}
์ถ๊ฐ ํ("else ํ" ๋ฐ ๋ง์ง๋ง ๊ดํธ)์ ์ถ๊ฐํ์ง๋ง ๊น๋ํ๊ฒ ์ ์งํ๊ณ ์ํ๋ ๋งํผ ์ฝ๋๋ฅผ ์ถ๊ฐํ ์ ์์ต๋๋ค.
์ ๋ C++์์ ์ผํญ์ฐ์ฐ์๋ฅผ ๋ง์ด ์ฌ์ฉํ๋๋ฐ ๋ฌธ๋ฒ์ด ์ข์ง ์๋ค๊ณ ์๊ฐํฉ๋๋ค. ๋น์ ์ ๋ฐ๊ฒฌํด์ผ ํฉ๋๊น? ๋ฐ : ๋ค๋ฅธ ํ ํฐ์ ๋ฐ๋ค ํ๊ฐ์ด๋ฐ์์ ๊ทธ๊ฒ์ด ์กฐ๊ฑด๋ถ์ธ์ง ํ์ธํฉ๋๋ค. ํํ์ ์ฌ์ฉํ๋ฉด ๋ ์์๊ฒ "์ฌ๊ธฐ์ ์กฐ๊ฑด์ด ์ต๋๋ค"๋ฅผ ๋ํ๋ด๋ ์ ํ ํ ํฐ์ด ์๋ ๊ฒฝ์ฐ.
๊ธ์, ๋๋ ์ฌ์ ํ ?:
์ฐ์ฐ์์ ๊ตฌ๋ฌธ์ ์ ํธํฉ๋๋ค. ํนํ if_true
๋ฐ if_false
๊ฐ ๋จ์ผ ํํ์(ํํ์์ผ๋ก ๋๋๋ ์ฌ๋ฌ ๋ช
๋ น๋ฌธ์ ๋ฐ๋)์ธ ๊ฐ๋จํ ๊ฒฝ์ฐ์ ์์ ์ ํ์ด ๋๋ฌด ์ฅํฉํ๋ค๋ ๊ฒ์ ์์์ต๋๋ค.
๊ทธ๋ผ์๋ ๋ถ๊ตฌํ๊ณ ?: ์ฐ์ฐ์๊ฐ ์ ๊ฑฐ๋๋ฉด ๋๋ ๊ทธ๋ค์ง ๊ฐ๋ ฅํ๊ฒ ๋ฐ๋ํ์ง ์์ ๊ฒ์ ๋๋ค.
๋๋ ๋ํ ?:
์ฌ๊ธฐ์ ๊ธฐ์ ์ฌ์ฉํ๊ณ ์์ง๋ง, ์ฌ์ ํ ๊ทธ๊ฒ์ ์ ๊ฑฐํ๋ ๊ฒ์ด ์ข์ ์๊ฐ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. ๊ทธ๊ฒ์ ์ฐ๋ฆฌ์ ํํ์ ๊ตฌ๋ฌธ์์ ๋ ๊ฐ์ (!) ASCII ๊ธฐํธ๋ฅผ ํด์ ํฉ๋๋ค. ์ฐ๋ฆฌ๊ฐ ๊ทธ๋ค๋ก ํ ์ ์๋ ๋ค๋ฅธ ๋ชจ๋ ๋๋๋๋ก ๋น๋ฐ์ค๋ฌ์ด ์ผ๋ค์ ์๊ฐํด ๋ณด์ญ์์ค.
์ํธํ๋์ง ์์ ์ฌ์ฉ์ ์ ์ด ์ด๋ฆ์ ์ผ๋ถ๋ก ํ์ฉํ๋ ๊ฒ์
๋๋ค.
์: "is_empty()" ๋์ "empty?()".
@marijnh ++ :)
๊ฐ์ธ์ ์ผ๋ก ๋๋ ํ์๋ฆฌ๋ฅผํ์ง ์์ต๋๋ค. Igor๋ https://mail.mozilla.org/pipermail/rust-dev/2010-November/000110.html ์์ ์ผํญ์ ์ฃผ์ฅํ์ต๋๋ค.
์ด๊ฒ์ pull req #1705์์ ์ํ๋์์ต๋๋ค.
return parent.index_of(child_a) < offset_b ? -1 : 1
ํจ์ฌ ๋ ์ข์ ๋ณด์ธ๋ค
return if parent.index_of(child_a) < offset_b {
-1
} else {
1
}
์ฐ๋ฆฌ๊ฐ ์ด๊ฒ์ ๋ํด ๋น๋จ๊ฒฐ์ ์ด์ด์ผํ๋ค๋ฉด,
return -1 if parent.index_of(child_a) < offset_b else 1
ํจ์ฌ ๋ ์ข์ ๊ฒ์ ๋๋ค.
๋์ํฉ๋๋ค. ์ ์ ๊ฑฐํด์ผ ํ๋์ง ์ดํด๊ฐ ๋์ง ์์ต๋๋ค... ๋ชจ๋ ์ธ์ด๋ ์๋์ง๋ง ๋๋ถ๋ถ์ ์ธ์ด์ ๊ทธ๋ฌํ ์ผ๋ฐ์ ์ธ ๊ดํ(์ผํญ ์ฐ์ฐ์)์ด ์กด์ฌํ๋ ๊ฒฝ์ฐ Rust ์ฌ์ฉ์์๊ฒ ๋ถํ์ํ๊ฒ ๋ฌด๊ฒ๊ณ ์ฅํฉํ ์ฝ๋๋ฅผ ์์ฑํ๋๋ก ๊ฐ์ํ์ง ๋ง์ญ์์ค.
์ด์จ๋ , ๋๋ฌ์ง๋ง ๋ ๊น๋ํ ์ฝ๋ ์คํ์ผ์ ์ง์ํ๋ ์ฌ๋๋ค์๊ฒ ์ ๋ชฉ์๋ฆฌ๋ฅผ ๋ํ๊ณ ์ถ์์ต๋๋ค.
๋๋ ๋ํ์ด ๊ตฌ๋ฌธ์ด ๊ทธ๋ฆฌ์
์ ๋ ์ฌ๊ธฐ์ ์ธ ๊ฐ์ง ๊ณต๋ชจ ํจ๊ณผ๊ฐ ์๋ค๊ณ ์๊ฐํฉ๋๋ค. ์ฆ,
1) "ํ๋ฅญํ ์ง์ /ํํ ๋ถํ "(@BrendanEich);
2) ๋ถ์ธ ์ปจํ
์คํธ์์ ๋น ๋ถ์ธ ๊ฐ์ ๋ณํ
3) '๋์ ' ์ธ์ด์กฐ์ฐจ๋ ์์ฆ ์ผ๋ฐ์ ์ผ๋ก '๋์ ๊ตฌ๋ฌธ'(์ค์ ๋งคํฌ๋ก) ๋ฐ '๋์ ์๋ฏธ๋ก '(์ผ๋ช
Python์ from __future__ import division
)์ ์ป์ง ๋ชปํฉ๋๋ค.
(1)์ if ... then ... else ...
๊ฐ ... ? ... : ...
์ ๊ทผ๋ณธ์ ์ผ๋ก ๋ค๋ฅด๋ค๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค. ์ด๋ ์์ ํ ํ์ ์๋ ๊ตฌ๋ณ์
๋๋ค. return
์ ๊ฐ์ ๊ทน๋จ์ ์ธ ๊ฒฝ์ฐ๊ฐ ์์ง๋ง ์ ์ฒด์ ์ผ๋ก ๊ตฌ๋ถํ ํ์๋ ์์ต๋๋ค.
(2) ๋ง์ ์ธ์ด์์ ์์์ ํํ์์ ํ
์คํธ๋ก ์ฌ์ฉํ ์ ์์์ ์๋ฏธํฉ๋๋ค. ์ด๊ฒ์ ์ฌ์ ํ โโ์ฒซ ๋ฒ์งธ ์ธ์ด๋ฅผ ์ฌ์ฉํ๊ณ ๋ ๋ฒ์งธ ์ธ์ด๋ฅผ ์์ํ์๋ง์ ์ง์ฆ๋๋ ํ ํธ๋ฆฌํ๊ฒ ๋ณด์
๋๋ค. ์ ์์ ๋พฐ์กฑํ OUT์ผ๋ก ์ด ๋ ๋ง ํ ๋ก , ๋น๋ฆฌ์คํธ ์ค ํ๋๋ฅผ ๋ํ๋ด๋ํด์ผํ๋ ์ด์ ๋ ๋ถ๋ช
ํ์ง ์๋ค false
๋๋ true
- ๊ทธ๋ฅ ์ฐ๊ธฐ if ( d.length == 0 ) ...
๋น์ ์ _so_ ํจ์ฌ ์ ๋ช
๋๋ฅผ ์ป์๋ค!
(3)์ ์ธ์ด ์์ํ๊ฐ ์ ๊ณตํ๋ ๊ฒ์ด ๋ฌด์์ด๋ ๊ณ ์ ๋์ด ์๋ค๋ ์๋ฏธ์ด๋ฉฐ, ๊ทธ๊ฒ์ด ๋ฌด์์ด๋ ๊ฐ์ ๋๊ตฐ๊ฐ๊ฐ ์ฝ๋๋ฒ ์ด์ค๋ฅผ ๋ถ๊ธฐํ๊ฑฐ๋ ๋ค์ ์์ฑํ์ฌ ์ ์ด๋ฆ์ ๋ถ์ฌํ ๋๊น์ง ์ธ์ด๋ ๊ณ ์ ๋ ๊ฐ๋ฅ์ฑ์ด ๋์ต๋๋ค. ๋ค๋ฅผ ์ ์์ต๋๋ค. use 'ternary conditions'; use 'empty lists are false';
๋ฅผ ํ์ฉํ๋ ์ธ์ด๊ฐ ์์ ์ ์์ต๋๋ค. ์ด์ ๋ํ ์ ๋ก๊ฐ ์์ต๋๋ค. ๋ฌผ๋ก ์ด๋ฌํ "ํธ์ฐจ ํ์"๋ฅผ ํญ์ ์ผ๋์ ๋๊ณ ํ๋ก๊ทธ๋จ์ ๋ณต์ฌํ์ฌ ๋ถ์ฌ๋ฃ์ ๋ ๋ณต์ฌํ๋ ๊ฒ์ ๊ธฐ์ตํด์ผ ํ๊ธฐ ๋๋ฌธ์ ๋ง์ ๊ฒ์ด ์ด๋ฌํ ์ ์ฐ์ฑ์ ๋ฐ๋ํฉ๋๋ค. OTOH ๋จ์ํ ์ฌ์ฉ์๊ฐ ์ธ์ด ๊ตฌ๋ฌธ๊ณผ ์๋ฏธ๋ฅผ ์ฝ๊ฒ ๋ณ๊ฒฝํ๊ณ ์ด๋ฌํ ๊ดํ์ ์ค์น ๊ฐ๋ฅํ ๋ชจ๋๋ก ๋ฏธ๋ฆฌ ํจํค์งํ ์ ์๋ค๋ฉด ์ธ์ด์ ์งํ์ ํฐ ๋์์ด ๋ ๊ฒ์
๋๋ค.
@kevina ๋๋ก๋
@caitp : ์ ํํ ๋ฌด์์ด ์๋ชป๋์๋์?
return if parent.index_of(child_a) < offset_b { -1 } else { 1 }
๋๋ ๋ด๊ฐ ๊ฐ์ธ์ ์ผ๋ก ๊ฐ์ฅ ์ข์ํ๋ "ํ๊น ์กฐํญ" ์ค ํ๋
return
if parent.index_of(child_a) < offset_b { -1 }
else { 1 }
... ๋๋ ์ผ์น๋ฅผ ์ฌ์ฉํฉ๋๋ค. ํนํ ์ฌ๋ฌ ์กฐ๊ฑด์ด ์๋ ๊ฒฝ์ฐ ...
return match parent.index_of(child_a) < offset_by {
true => -1,
false => 1
}
... ๋ฌผ๋ก ์ฌ์ฌ์ฉํ ๊ฐ๋ฅ์ฑ์ด ์๋ ๊ฒฝ์ฐ: ๊ทธ๋ฅ ํจ์๋ก ์ฎ๊ธฐ์ธ์...
return parent.is_child_before(offset_b)
์ ๊ฒ์ ๋ณด์ธ์... ์ต์ ์ด ์์ต๋๋ค... _๋ชจ๋ ๊ฒ_์ ํํ์ด๊ธฐ ๋๋ฌธ์ ๋๋ค.
๋๋ ๋
น์ฌ์ง ์๊ณ if {} else {}
๋์
() ? :
, ์ถ๊ฐ ์กฐ๊ฑด๋ฌธ์ ์ฐ๊ฒฐํ๋ฉด if-as-an-expression์ด ํจ์ฌ ๋ ๋ฉ์ง๊ฒ ๋ณด์
๋๋ค. (์ค์ฒฉ ์ผํญ ์ฐ์ฐ์๋ ๋งค์ฐ ๋น ๋ฅด๊ฒ ์ง์ ๋ถํด์ง๋๋ค.)
์ ์๊ฐ์๋ if-as-an-expression
์ฌ์ฉํ ๋ ๋ถํ์ํ ๊ณต๋ฐฑ์ ๋๋ฌด ๋ง์ด ์ฃผ์
ํ ํ์๊ฐ ์์ต๋๋ค. ๋๋ ๋ํ ๊ทธ๊ฒ์ด ์ผํญ ์ฐ์ฐ์๋ณด๋ค ๋ ์์ฐ์ค๋ฝ๊ฒ ์ฝํ๋ค๋ ๊ฒ์ ์๊ฒ ๋์๊ณ ์ถ๊ฐ์ ์ธ ์ฅํฉํจ์ ๋ ์ ์ ์๊ฐ์ ์ผ๋ก ๋ถ๋ฆฌํ๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค. ๊ทธ๋ฅ ๋ด $0.02
๋ด๊ฐ ๋งํ ๊ฒ์ ๋น์ ์ด ์๋ชป ์ฝ์์ ์๋ ์๋ค๊ณ ์๊ฐํฉ๋๋ค (๊ทธ๋ฆฌ๊ณ ์ด๊ฒ์ ์ผ๋ง ์ ์ ๊ฒ์์ ์ ์ํ์ญ์์ค)
๋๋ ๋จ์ง ์ผํญ ์ฐ์ฐ์๊ฐ "๋ฌดํํ๊ฒ ๋ ๋์" ๋ฐฉ์์ผ๋ก ์ด๋ป๊ฒ ๋ณด์ด๋์ง ์ ์ ์๋ค๋ ์ ์ ์ง์ ํ๊ณ ์์ ๋ฟ์
๋๋ค.
์ ์๊ฐ์๋ ์ผ๋ฐ์ ์ธ ํํ๊ฐ ํน๋ณํ ๊ฒฝ์ฐ๋ณด๋ค ํจ์ฌ ๋ ์๋ฆ๋ต์ต๋๋ค.
์ฃผ์์ ๋๋๋ก ์กฐ๊ฑด๋ฌธ๊ณผ ๋ฌ๋ฆฌ ํํ์์ผ๋ก์์ ์กฐ๊ฑด๋ถ๊ฐ ๋งค์ฐ ์ ์ฉํ๋ค๊ณ ๋งํฉ๋๋ค. ๊ปด์๋ ์ค๊ดํธ๋ฅผ ๋จ์ด ๋จ๋ฆฌ๋ ๊ฒ์ ์ฃผ๊ด์ ์ธ ๊ฐ์ ์ผ๋ฟ์ ๋๋ค.
return parent.index_of(child_a) < offset_b ? -1 : 1
๋
return if parent.index_of(child_a) < offset_b { -1 } else { 1 }
@caitp ๋ ์ฌ๊ธฐ์์ ๋ ๋ฒ์งธ๊ฐ ์ฒซ ๋ฒ์งธ๋ณด๋ค ์ ๋ง ๋ฌดํํ ๋ ๋์ฉ๋๊น? Rust์ if else๋ ์ฌ์ ํ ํํ์์ ๋๋ค(๋ฌธ์ด ์๋).
๋ด ์๊ฐ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
?
๊ตฌ๋ฌธ์ ์ ์งํ๋ ๊ฒ์ด ๋ ๋์ ๊ฒ์
๋๋ค.@mitchmindtree ์์ ํ.
๋ค์ ๋งํ์ง๋ง, ๋น์ ์ ๋๊ธ์ด ๋งํ ๊ฒ์ ์คํดํ๊ณ ์์ต๋๋ค.
return if parent.index_of(child_a) < offset_b { -1 } else { 1 }
๋ ์ฌ์ ํ ์กฐ๊ฑด๋ถ๋ฅผ ํํ์์ผ๋ก ํ๊ฐํ๊ณ ์์ต๋๋ค(๋ฐ๋ผ์ return
๋ํ ํผ์ฐ์ฐ์๊ฐ ๋ ์ ์์).
์ค๊ดํธ๋ ๋ณด๊ธฐ ํํ์ง๋ง ์์ ์ ์ค๊ดํธ๊ฐ ์๋๋ผ ์กฐ๊ฑด์์ ๊ดํ ๊ฒ์
๋๋ค. return foo.bar.baz(<conditional operand>)
๋ if (<conditional operand>) { return foo.bar.baz(1); } else { return foo.bar.baz(2); }
๋ฅผ ์ธ ์ ์๋ค๋ ๊ฒ์
๋๋ค.
์ฐ๋ฆฌ๊ฐ ์ ๋ง๋ก ๊นจ๋ฌ์์ผ ํ ๊ฒ์ ์ด ๋ฌธ์ ๊ฐ 3๋ ์ด ๋์๋ค๋ ๊ฒ์ ๋๋ค. ์ฌ๋๋ค์ด 3๋ ๋์ ์ผํญ์์ ๊ทธ๋ฆฌ ๋ง์ด ๊ทธ๋ฆฌ์ํ์ง ์์๋ค๋ ์ ์ ๊ณ ๋ คํ ๋, ๋๋ ๊ทธ๋ค์ด ์ ๊ฑฐ๋ ์ฑ๋ก ์์ ๊ฒ์ด๋ผ๊ณ ๋งํ๋ ๊ฒ์ด ์์ ํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
@caitp ํ ์์ง
๋ น์์ ๋น์ ์ ์ฌ์ ํ โโํ ์ ์์ต๋๋ค
return foo.bar.baz(if cond { 42 } else { 0 })
? (๋๋ ๋น์ ์ด ์ค๊ดํธ btw์ ๋ํด ์ด์ผ๊ธฐํ๊ณ ์์ง ์๋ค๋ ๊ฒ์ ์๊ณ ์์ต๋๋ค. ํผ๋์ ๋๋ ค ์ฃ์กํฉ๋๋ค :smile_cat: )
๋น์ ToT์์๋ Rust์์ ์ด๊ฒ์ ํ ์ ์๋ ๋ฐฉ๋ฒ์ด ์์์ต๋๋ค.
๋๋ ๊ฐํ ์๊ฒฌ์ด ์์ง๋ง ?
๋ฐ :
๊ฐ ๋ค๋ฅธ ์ฉ๋๋ก ๋ ์ ์ฌ์ฉ๋ ์ ์๋ค๋ฉด ??
์ ๊ฐ์ ๊ฒ์ ์ฌ์ฉํ์ง ์๋ ์ด์ ๋ฅผ ์ถ๊ฐํ๊ณ ์ถ์ต๋๋ค. ?:
๋์ cond ?? 43 ?: 0
?
์์ญ ๋ ๋์ ๊ฐ๋ฐ์๊ฐ ์ฌ์ฉํ๋ ๋ฐฉ์์ ๋ณ๊ฒฝํ๋ ์ด์ ๋ ๋ฌด์์ ๋๊น?
๋ฅด ์. 10์ 24์ผ 2015 02:46, Kevin Atkinson ์๋ฆผ @github.com
์ํฌ๋ฆฌํธ :
ํ๊ณ ํ ์๊ฒฌ์ ์์ง๋ง ์ถ๊ฐํ๊ณ ์ถ์ ๊ฒ์ ? ๋ฐ : ์
๋ค๋ฅธ ๊ฐ์ฌ์ ์ฌ์ฉํ๋ ๊ฒ์ด ๋ ๋ซ์ต๋๋ค. ์ ๊ฐ์ ๊ฒ์ ์ฌ์ฉํ์ง ์์ต๋๊น ?? ๊ทธ๋ฆฌ๊ณ ?:
๋์ ์. ๊ทธ๋์ ์๋ง๋ ์กฐ๊ฑด ?? 43?: 0.โ
์ด ์ด๋ฉ์ผ์ ์ง์ ๋ต์ฅํ๊ฑฐ๋ GitHub์์ ํ์ธํ์ธ์.
https://github.com/rust-lang/rust/issues/1698#issuecomment -150728625.
์ฃ์กํฉ๋๋ค @RenaudParis, ๋ด๊ฐ ๋ฌด์จ ๋ง์ ์๋ฏธํ๋ ๊ฒ์์ด์๋ค : ๋๋ ๊ฐํ ์๊ฒฌ์ ๊ฐ์ง๊ณ ์์ง ์์ง๋ง, ๋ ๊ทธ๋ฅ ์ถ๊ฐํ๋ ค๋ ๊ฒฝ์ฐ ?
๋ฐ :
๋ ๋์ ๋ค๋ฅธ ๊ฒ๋ค, ์ ์ฌ์ฉํ ์ ์์ต๋๋ค ??
๋ฐ ?:
์ ๊ฐ์ ๊ฒ์ ๋์ ์ฌ์ฉํ์ง ๋ง์ญ์์ค(์ cond ?? 43 ?: 0
?
์ผํญ ์ฐ์ฐ์๊ฐ ์ ๊ฑฐ๋ ์ด์ ์ค ํ๋๋ "?" ๋ฏธ๋์ ๋ค๋ฅธ ์ฉ๋๋ก ์ฌ์ฉ๋ ์ ์์ต๋๋ค. ๋ด ์ ์์ ๋ค๋ฅธ ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ์์ต๋๋ค. cond ?? 43 ?: 0
๋ ์ฌ์ ํ if cond {43} else {0}
๋ณด๋ค ์งง์ต๋๋ค.
์ ๊ฑฐํ๋ ๊ฒ์ด ๋ง๋ค๊ณ ์๊ฐํ์ง๋ง ๋จ์ผ ํํ์์ ์ค๊ดํธ๊ฐ ํ์ํ์ง ์๋ค๋ฉด ๊ทธ๋ ๊ฒ ๋์์ง ์์ ๊ฒ์ ๋๋ค. (๊ทธ๋ฆฌ๊ณ ๋ค, ์ด๊ฒ์ด ํ์์ ์ผ๋ง๋ ๋ง์ ๊ณ ํต์ ์ฃผ๋์ง ์๋๋ค. ๊ทธ๋งํ ๊ฐ์น๊ฐ ์์ต๋๋ค. ๊ฐ๋ ์ฑ์ด ๋งค์ฐ ์ค์ํฉ๋๋ค.)
์
if i ==0
return i
else
1
๋๋
if i == 0 return i
else 1
์ด ํ์์
if i == 0 ? return i
: 1
๋๋
if i == 0
? return i
: 1
๊ตฌ์
if i ==0 {
return i
}
else {
1
}
๊ฝค ์ถํ / ๋๋ฌด ์ผ๋ฐ์ ์ธ ๊ฒ์ ์ฝ๊ธฐ ์ด๋ ต์ต๋๋ค.
์ด์งํธ ์ค๊ดํธ์ ๋ํ ๊ฐ๋ฐ์ ์ ์ฑ ์ด ์์ผ๋ฉด ๋ ๋๋น ์ง์ง๋ง ๋ ์ฝ๊ธฐ ์ฝ์ต๋๋ค.
if i ==0
{
return i
}
else
{
1
}
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
๋์. JS๋ฅผ ํํ ์ธ์ด๋ก ๋ง๋ค์์ผ๋ฉด ์ข๊ฒ ์ต๋๋ค. ํ๋ฅญํ ๋ฌธ์ฅ/ํํ์ ๋ถํ ์ ?: ์ ๋๊ธฐ๋ฅผ ๋ถ์ฌํ์ง๋ง Rust๋ ๊ทธ๋ฐ ๊ฒ์ด ์๊ณ if-else๋ก ์ถฉ๋ถํฉ๋๋ค.
/์ด๋ค