ํฌ๊ด์ ์ธ ๋ฒ์ ๋ฐ ํจํด์ ๋ํ ๊ตฌ๋ฌธ์ ..=
๋ก ๋ณ๊ฒฝํ ๊ณํ์
๋๋ค. ํจํด์ ...
๊ตฌ๋ฌธ์ ์์ ์ ์ด๋ฉฐ ๋น๋ถ๊ฐ (์กฐ์ฉํ) ๋ ์ด์ ์ฌ์ฉ๋์ง ์์ต๋๋ค. Rustfmt ๋ ...
๋ฅผ ..=
๋ค์ ์ธ ์ ์์ต๋๋ค. ์ด๊ฒ์ ๋ง์ ํ ๋ก ํ์ ๋์ต๋๋ค. ์ ๋น์ฑ์ ์ํด ์ด ์ฃผ์์ ์ฐธ์กฐํ์ญ์์ค.
์ด ์ค๋ ๋์์ ๋ ์ด์ ๊ตฌ๋ฌธ ํ ๋ก ์ด ์์ด์ผ ํฉ๋๋ค . ๋ฐฐํ์ ๋ฒ์ ๊ตฌ๋ฌธ์ ๋ํ ๋ค๋ฅธ ์ ์์ ์ฌ์ฉ์ ํฌ๋ผ ์ด๋ ๋ด๋ถ ํฌ๋ผ ์์ ์ด๋ฃจ์ด์ ธ์ผ ํฉ๋๋ค. ์ฌ๊ธฐ์์ ๊ธฐ์กด ์๊ฒฌ๊ณผ ๊ทธ ๊ทผ๊ฑฐ๋ฅผ ๋ชจ๋ ์ฝ์ ํ ์ ๋๋ค. ํนํ, ํ์ ํธํ์ฑ์ ๊นจ๋ ๊ฒ์ ์์์ด ์๋๋๋ค.
..=
๋ฅผ ํจํด์์ ...
๋์์ด๋ก ๋ฐ์๋ค์ด๊ณ ํํ์ #44709์์ ..=
๋ฅผ ์๋ฝํ๋๋ก ๋ณ๊ฒฝRangeInclusive
๋ํ ์กฐ์ ์ ์ ์ํ์ต๋๋ค.RangeInclusive
ํ๋๋ ์ด๋ฒ ์์ ํ ๋จ๊ณ์์ ์ ์ธ๋์์ต๋๋ค. ์ด ๊ธฐ๋ฅ์์ #49022๋ฅผ ์ถ์ ํ์ญ์์ค.์๋ง๋ a..b|
๋๋ a..b]
๋๋ ์ด๊ฒ์ด ๋จ์ํ ์คํ(.. vs ...) ๋๋ฌธ์ ๋ฏธ๋์ ์์ธกํ ์ ์๋ ์๋ก์ด ์ข ๋ฅ์ ์ค๋ฅ์ ๋ํ ๊ธธ์ ์ด ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. ....(4 ๊ธฐ๊ฐ)์ด๋ฉด ๋ ์ข์ต๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด ์ธ์ ์์์ ์ค๋ฅ๊ฐ ๋ฐ์ํ๊ธฐ ์ฝ์ต๋๋ค.
https://github.com/rust-lang/rfcs/pull/1592 ๋ฐ https://github.com/rust-lang/rfcs/pull/1582๋ฅผ ๊ฒฐํฉํ์ฌ ..=
๋์ ๊ตฌ๋ฌธ. ๋๊ตฐ๊ฐ๊ฐ ๋ ํฐ ํํ ์์ ์๋ ํํ์ ํ์ฅํ๊ธฐ ์ํด (head..., tail)
๋ณด๋ค ๋ ๋์ ๊ตฌ๋ฌธ์ ์๊ฐํ ์ ์๋ค๋ฉด.
๋๋ ๋ฐฐํ์ ๋ฒ์๋ฅผ ์ฌ์ฉํ๋ ค๊ณ ํ ๋ ๋ด ์ฝ๋์ _off-by-one- dot _ ์ค๋ฅ๊ฐ ์์๊ธฐ ๋๋ฌธ์ ์ด ๋ฌธ์ ๋ฅผ ๋ฐ๊ฒฌํ์ต๋๋ค.
๐ ...
๊ตฌ๋ฌธ. ํ๋์ฉ ์ค๋ฅ๋ฅผ ์ผ์ผํค๋ ์๋ชป ์
๋ ฅํ๊ธฐ ์ฌ์ด ๊ตฌ๋ฌธ์ ๊ฐ๋ ๊ฒ์ ์ด์์ด ๋ ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค.
์ด ๊ธฐ๋ฅ์ ์ ์ฉํ๋ฏ๋ก ..=
์ ๊ฐ์ด ๋ค๋ฅธ ๊ตฌ๋ฌธ์ผ๋ก ์ฌ์ฉํ ์ ์์ต๋๋ค.
์ด์ ๋ํ ๊ตฌ๋ฌธ์ ๊ณต๊ฐ ์ง๋ฌธ์
๋๊น? ...
์ด ์ด๋ฏธ match ๋ฌธ์ ์์ผ๋ฏ๋ก ๋ฐฐ๊ฐ ํญํดํ๋ค๊ณ ๊ฐ์ ํ์ต๋๋ค.
๊ฐ์ธ์ ์ผ๋ก ...
ํฌํจ ๋ฒ์๋ฅผ ์ ํธํ์ง๋ง ์ด๋ฏธ ..
๋
์ ๋ฒ์ ์ด ์์ผ๋ฏ๋ก ๋ฌธ์ ์ ๊ฐ๋ฅ์ฑ์ด ์์ต๋๋ค. #23635๋ฅผ ๋ณธ ํ์๋ ..
๋ ์ด์ ์ฌ์ฉํ์ง ์๊ณ ...
๋ง ํ์ฉํ๊ณ ์ถ์ต๋๋ค.
์ ๋ C์ ๊ฐ์ for ๋ฃจํ for i in 0..foo.len()
์ ์๋ฒฝํ๊ฒ ๋ง๋ ๊ฒฝ์ฐ ํฌ๊ด์ ์ธ ๋ฒ์๋ฅผ ๋ง์ด ์ฌ์ฉํ๋ฏ๋ก ๊ทธ๋๋ก ๋๋ ๊ฒ์ด ์ข์ต๋๋ค(Rust์ ๋ฐ๋ณต์๋ "1์ฐจ์"์ด๊ณ ์ข
์ข
2D ๋ฐฐ์ด ๋๋ ๋น์ ํ ๋ฐ๋ณต๊ณผ ํจ๊ป ์ฌ์ฉํ๊ธฐ์๋ ๋๋ฌด ์ด์ํจ).
ํฌ๊ด์ ์ธ ๋ฒ์์ ๋ํ ์ค๋ฒํ๋ก ๋ฌธ์ ๋ ์ด๋ฆฌ์์ ๊ฒ์ฒ๋ผ ๋ณด์ด์ง๋ง ์ค์ ๋ก๋ Rust๊ฐ usize
์ด์ธ์ ๋ค๋ฅธ ์ ํ๊ณผ ํจ๊ป ์ฌ์ฉํ๋ ๊ฒ์ด ์ง์ฆ๋๊ธฐ ๋๋ฌธ์ ์ค์ ๋ก๋ ์ด ๋ฌธ์ ์ ๋ถ๋ชํ ์ ์ด ์์ต๋๋ค. for i in 0..(len as usize)
๋ฒ์๋ฅผ ์์ฑํ ๋ ์บ์คํธํ์ง ์์๋ค๋ฉด ์ด์จ๋ ๋ฃจํ ๋ด์์ i as usize
6๋ฒ์ ์ฌ์ฉํด์ผ ํฉ๋๋ค.
์ด ๊ตฌ๋ฌธ์ ์ฌ์ ํ โโ๊ธฐ๋ฅ์ด ์ ํ๋์ด ์์ผ๋ฏ๋ก ๋ฐฐ๊ฐ ํญํดํ์ง ์์์ผ๋ฉด ํฉ๋๋ค.
swift๊ฐ ํฌํจ์ ...
๋ฅผ ์ฌ์ฉํ๊ณ ๋
์ ๋ฒ์์ ..<
๋ฅผ ์ฌ์ฉํ๋ค๋ ์ ์ ๊ณ ๋ คํ๋ฉด ํฌํจ์ ..=
๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ๊ฝค ํฉ๋ฆฌ์ ์ผ๋ก ๋ณด์
๋๋ค.
์ ์ฉํ ํต์ฐฐ๋ ฅ์ด ์์ง๋ง ํฌ๊ด์ ์ธ ๋ฒ์์์ "์คํ์ " ์ํ๋ฅผ ์ข ๋ฃํ๊ณ ์ถ์ต๋๋ค. Rust By Example์ ์งํํ๋ฉด์ ๋ค์๊ณผ ๊ฐ์ ์ด์ ์ ์ป์ ์ ์๋ ์ค๋ํซ์ ์ฐพ์์ต๋๋ค.
fn fizzbuzz_to(n: u32) {
for n in 1..n + 1 {
fizzbuzz(n);
}
}
์๋ก ? ๐
a ..= b
๊ตฌ๋ฌธ ๋ฐ ์ผ๋ฐํ๋ ๋ฒ์์ ๋ํ RFC๋ฅผ ์์ฑํ๊ณ ์ถ์ต๋๋ค. ํ์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ์์ ์ด๋ฌํ ๋ฒ์๊ฐ ํํ๋๋ ๋ฐฉ์์ ๋ํด ๋
ผ์ ํ๊ธฐ ์ํด
IMHO ..= ์ด์ํด ๋ณด์ ๋๋ค. ์ ๋ ... ๋ฐ ..<์ ๋ํ Swift์ ์ ๊ทผ ๋ฐฉ์์ด ๋ ์ข์ ๋ณด์ ๋๋ค. ์ ๋ ๋ ๊ฐ์ ์ ๋ณด๋ค ์ค์ํ๋ฅผ ์ ํธํ๊ธฐ ๋๋ฌธ์ ๋๋ค. ์ค์ํ๋ ์๋ต์ ๋ํ๋ด๋ฉฐ ๋ฒ์์ ์์๊ณผ ๋ ์ฌ์ด์ ์ซ์๋ฅผ ์๋ตํฉ๋๋ค.
๋๋ ์ฌ์ ํ ... ๊ทธ๋ฆฌ๊ณ .. ์ถฉ๋ถํ ์ข์๋ค๊ณ ์๊ฐํฉ๋๋ค. 1๊ฐ์ ๋ฌธ์ ์ฐจ์ด๊ฐ ์์ผ๋ฏ๋ก +/- ๋๋ x/y ๋๋ ๊ทธ ๋ฐ์ ๊ฒ๋ณด๋ค ์ค์๋ฅผ ํ๊ธฐ๊ฐ ๋ ์ด๋ ต์ต๋๋ค.
์ด์ ์ ๋ด๊ฐ ์ด๊ฒ์ ์๋ชป ์ดํดํ๊ธฐ ๋๋ฌธ์(๊ทธ๋์ ๋ด ์๊ฒฌ์ ์ญ์ ํ์ต๋๋ค):
Rust์ RFC ํ๋ก์ธ์ค์ ๋ฐ๋ผ ์ด ์ ์์ RFC pull request 1192 ์์ ์ด๋ฏธ ๊ฒํ , ๋ ผ์ ๋ฐ ์น์ธ๋์์ต๋๋ค. ์ด๋ฒ ํธ์์๋ ์ด์ ์ ๊ฒฐ์ ๋ ์ฌํญ์ โโ๊ตฌํ์ ์ถ์ ํฉ๋๋ค. ํ ๋ก ์์๋ ์ฌ๋๋ค์ด ์ฌ๊ธฐ์์ ์ ๊ธฐํ๋ ๋ง์ ์์ ์ ๋ค๋ค์ต๋๋ค: ๋์ฒด ๊ตฌ๋ฌธ(์ ๊ตฌ๋ฌธ ์์ ํฌํจ), Ruby์ ์ ์ฌํ ์ฐ์ฐ์์์ ๋์กฐ ๋ฑ.
๊ธฐ๋ฅ์ด ๋ฌ๋ผ์ผ ํ๋ค๊ณ ๊ฐํ๊ฒ ๋๋๋ค๋ฉด ๋์ผํ RFC ํ๋ก์ธ์ค๋ฅผ ๊ฑฐ์ณ์ผ ํ๋ค๊ณ ์๊ฐํฉ๋๋ค. ๊ทธ๋์ผ ์ธ์ด๊ฐ ๋ณ๊ฒฝ๋๊ธฐ ๋๋ฌธ์ ๋๋ค. ๊ทธ๋ฌ๋ ์ด ๋ฌธ์ ๋ ๊ทธ๋ด ๋ฌธ์ ๊ฐ ์๋๋๋ค.
@jimblandy ์ด์ฉ๋ฉด ์ฐ๋ฆฌ๋ @nikomatsakis๊ฐ ๊ทธ ์ ์คํ ์๋ฆผ๊ณผ ์ง์นจ์ ์ง์ ํ ๋น ํ๋ฆฐํธ์ ์ฒซ ๋ฒ์งธ ๋๊ธ๋ก ํธ์งํ๋๋ก ํด์ผ ํ ๊ฒ์ ๋๋ค. ๐
@shepmaster _๋ชจ๋ _ ์ถ์ ๋ฌธ์ ๋ฅผ ์ ์ถํ๋ ๋ฐ ์ฌ์ฉ๋๋ ํ ํ๋ฆฟ์ ์ถ๊ฐํ๋ ๊ฒ์ด ์ข์ ๊ฒ์ ๋๋ค.
ํ ๋ก /๊ฐ๋ฅํ FCP ์ง๋ช
@rust-lang/lang ํ์์์ ์ด์ ๋ํด ๋
ผ์ํ์ต๋๋ค. ์ด ๊ธฐ๋ฅ์ ๋ํ ์ ๋ฐ์ ์ธ ๋ถ๋ง์ด ์์์ต๋๋ค. ์ฐ๋ฆฌ๋ ๋ ์ด์ ์ฌ์ฉํ์ง ์๊ธฐ๋ก ๊ฒฐ์ ํ์ง๋ง ๋น๋ถ๊ฐ ๋ณด๋ฅํ๊ธฐ๋ก ๊ฒฐ์ ํ์ต๋๋ค. ...
๋ํ ๋ ๊ฐ์ง ์ฃผ์ ๋ฐ๋ ์๊ฒฌ์ด ์์ต๋๋ค.
..
์ ...
์ฌ์ด์ ํผ๋ ์ฉ์ด์ฑ ;์ด๋ฅผ ์ํด ์ฐ๋ฆฌ๋ ์ฌ๋๋ค์ด ํํ ๋ฐ ์ํ์ด ํฌ๊ด์ ์ธ์ง ๋ฐฐํ์ ์ธ์ง๋ฅผ ์ ํํ๊ฒ ์ง์ ํ ์ ์๋๋ก ํ๋ ๋ ์ผ๋ฐ์ ์ธ ๊ตฌ๋ฌธ์ ๊ฐ๋ฅํ๊ฒ ํ๋ RFC๋ฅผ ๊ธฐ๊บผ์ด ์ถ์งํ ์ฌ๋์ด ์๋์ง ๊ถ๊ธํ์ต๋๋ค. ๋๋ @aturon ์ด ๊ทธ๋ฌํ RFC์์ ๋๊ตฐ๊ฐ์ ํจ๊ป ์ผํ๊ฒ ๋์ด
๋๋ ์ ์ ๋ฉ์ท๋ค๋ ๊ฒ์ ์๊ณ ์์ง๋ง ์ต๊ทผ์ libstd์์ ์์ ํ ๊ธฐ๋ฅ์ ๊ฐ์ถ ๋ฒ์๋ฅผ ํํํ๋ ๋ฐฉ๋ฒ์ ๋ํ ํ ๋ก ์ค๋ ๋( ์์ ๋งํฌ๋จ)๋ฅผ ์ด์์ง๋ง ์๋ฌด๋ ์ธ๊ธํ์ง ์์์ต๋๋ค.(
์์ ์ ๋ณด๋ฅผ ๋ฐํ์ผ๋ก ์๋ก์ด RFC๋ฅผ ๊ธฐ๊บผ์ด ๋์๋๋ฆฌ๊ฒ ์ต๋๋ค.
๋๋ ์ต๊ทผ์ libstd(์์ ๋งํฌ๋จ)์์ ์์ ํ ๋ฒ์๋ฅผ ํํํ๋ ๋ฐฉ๋ฒ์ ๋ํ ํ ๋ก ์ค๋ ๋๋ฅผ ์ด์์ง๋ง ์๋ฌด๋ ์ธ๊ธํ์ง ์์์ต๋๋ค.
๊ทธ๊ฒ์ ์ด๋ ์ ๋ ๊ทธ๋ค์ ์ ์ฉ์ฑ์ ๋ฐ์ํฉ๋๋ค.
์์์ ํฌ๊ด์ -๋ฐฐํ์ ๋ฒ์๋ฅผ ๊ฐ๋ ๊ฒ์ ์ข์ ์๊ฐ์ฒ๋ผ ๋ค๋ฆฌ์ง๋ง ..
์ ํจ์ฌ ์ ์ ์์ค์ผ๋ก ...
๋ฅผ ์ ์ธํ ๋ชจ๋ ๊ฒ์ ์ ๋ ์ฌ์ฉ๋์ง ์์ ๊ฒ์ด๋ผ๊ณ ํ์ ํฉ๋๋ค.
@durka
๋๋ ์ ์ ๋ฉ์ท๋ค๋ ๊ฒ์ ์๊ณ ์์ง๋ง libstd(์ ๋งํฌ)์์ ์์ ํ ๊ธฐ๋ฅ ๋ฒ์๋ฅผ ํํํ๋ ๋ฐฉ๋ฒ์ ๋ํ ํ ๋ก ์ค๋ ๋๋ฅผ ์ด์์ง๋ง ์๋ฌด๋ ์ธ๊ธํ์ง ์์์ต๋๋ค.(
์ด๊ฒ์ ๋๋ต ์ฐ๋ฆฌ๊ฐ ์ผ๋์ ๋ ์ ๊ทผ ๋ฐฉ์๊ณผ ๋น์ทํฉ๋๋ค.
@petrochenkov
์์์ ํฌ๊ด์ -๋ฐฐํ์ ๋ฒ์๋ฅผ ๊ฐ๋ ๊ฒ์ ์ข์ ์๊ฐ์ฒ๋ผ ๋ค๋ฆฌ์ง๋ง ..๋ฅผ ์ ์ธํ ๋ชจ๋ ๊ฒ์ด .. ๊ทธ๋ฆฌ๊ณ ํจ์ฌ ์ ์ ... ์ ๋๋ ์ ๋ ์ฌ์ฉ๋์ง ์์ ๊ฒ์ด๋ผ๊ณ ํ์ ํฉ๋๋ค.
์์งํ ๋งํด์ ๋์ํ์ง๋ง, ์ฌ์ ํ ๋ ์ผ๋ฐ์ ์ธ ๊ตฌ๋ฌธ์ ์ถ๊ตฌํ ๊ฐ์น๊ฐ ์๋ค๊ณ ์๊ฐํฉ๋๋ค. ํนํ ...
๋ ์ฐจ์ ์ฑ
์ด๋ผ๊ณ ์๊ฐํ์ง๋ง ..=
๋๋ ๋ ๋ช
์์ ์ธ ๊ฒ์ผ๋ก ์ด๋ํ๋ฉด ๋๋ฌผ๊ฒ ๋ฐ์ํ๋๋ผ๋ ์ข ๋ ์ผ๋ฐ์ ์ธ ๊ฒ์ ํ๋ ๊ฒ์ด ์ค์ ๋ก ๋์ ๊ฒ์ ์์ ๊ฒ์
๋๋ค. ์ฌ์ฉ ๋. ์ฆ, ์ฒด๊ณ์ ์ผ๋ก ํ๋ฉด ๋ฐฐ์ฐ๊ธฐ๊ฐ ํจ์ฌ ์ด๋ ค์ ๋ณด์ด์ง ์๊ณ , ..
์ธ์ง ...
"๋ ๋ง์ ์"๋ฅผ ์๋ฏธํ๋์ง ํผ๋์ด ์์ ๊ฒ์
๋๋ค. ".
์ด๊ฒ์ ๋๋ต ์ฐ๋ฆฌ๊ฐ ์ผ๋์ ๋ ์ ๊ทผ ๋ฐฉ์๊ณผ ๋น์ทํฉ๋๋ค.
์ด๋ ๊ฒ? ๋ด ๊ฒ์๋ฌผ์์ ๋ช ๊ฐ์ง ๋์์ ์ ์ํ์ต๋๋ค.
๋๋ ์ข
์ข
ํฌ๊ด์ ์ธ ๋ฒ์๋ฅผ ๋ฐ๋ณตํ๊ณ ์ถ์ง ์ ๋ง ์
๋ ฅ ์ข์ 0...x
๋์ 0..(x + 1)
. ๋๋ ์ด๊ฒ์ด ํ๋์ฉ ์ค๋ฅ๋ฅผ ์ผ์ผํฌ ์ ์๋ค๋ ๊ฒ์ ์ดํดํ์ง๋ง ์ด๋ค ๋์์ด ์์ต๋๊น?
Rust์ ๊ตฌ๋ฌธ์ ๋ถ์์ฉ ์์ด ์์ ๋กญ๊ฒ ๋ณ๊ฒฝํ ์ ์๋ค๊ณ ๊ฐ์ ํ๋ฉด ๋ช ๊ฐ์ง ๋ช ๋ฐฑํ ํจํด๋ง ๋ณด์ ๋๋ค.
์๋ ๊ทธ๋๋ก ๋ฐ์๋ค์ด๊ณ
1..4 // 1, 2, 3
1...4 // 1, 2, 3, 4
์ด๋ ๊ด์ฐฎ์ ์๋ฃจ์ IMHO์ด๋ฉฐ ํจํด ์ผ์น์๋ ์ฌ์ฉ๋ฉ๋๋ค.
์ํ์์ ๋น๋ฆฌ๋ค
[1, 4] // 1, 2, 3, 4
[1, 4[ // 1, 2, 3
]1, 4] // 2, 3, 4
]1, 4[ // 2, 3
์ด๊ฒ์ ๊ฐ์ฅ ์์ ํ ๊ตฌ๋ฌธ์ด์ง๋ง ๊ฐ์ ์์ ์ฌ๋ ์ค๊ดํธ ๊ท์น์ ๊นจ๊ณ ์๊ฐ์ ์ผ๋ก ๊ตฌ๋ฌธ ๋ถ์ํ๊ธฐ ๋ ์ด๋ ต์ต๋๋ค.
ํ์ด์ฌ์์ ์ฐจ์ฉ
1:1:=5 // 1, 2, 3, 4, 5
1:1:<5 // 1, 2, 3, 4
์ด๋ ์๋ ค์ง ํจํด์ด๋ฉฐ ๊ณ๋จ ํฌ๊ธฐ๋ฅผ ํตํฉํ ์๋ ์์ต๋๋ค. RFC ํ๋ก์ธ์ค๊ฐ ์ด๋ป๊ฒ ์๋ํ๋์ง ๋ชจ๋ฅด์ง๋ง ๋ฒ์์ ๋ํด ์ด์ผ๊ธฐํ ๋ ๋จ๊ณ ํฌ๊ธฐ๋ ๊ณ ๋ คํด์ผ ํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
๋จ๊ณ ํฌ๊ธฐ๊ฐ ์ด ๋
ผ์์ ์ผ๋ถ๊ฐ ์๋ ๊ฒฝ์ฐ(๋๋ ๋ฏธ๋์ ๊ฒ) ..=
๋ฐ ..<
๊ฐ ๋งค์ฐ ํฉ๋ฆฌ์ ์ผ๋ก ๋ณด์
๋๋ค!
์
๋ฐ์ดํธ: ..=
๋ฐ ..<
๊ฐ ์ ๋ง ์ข์ ์๋ฃจ์
์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. ๋จ๊ณ ํฌ๊ธฐ๋ฅผ ์ด๋ํฐ๋ก ์ ์งํ๋ ๊ฒ์ด ํจ์ฌ ๋ ํฉ๋ฆฌ์ ์
๋๋ค.
์ด ํ ๋ก ์ ๋ด๋ฆผ์ฐจ์ ๋ฒ์๊ฐ ํฌํจ๋์ด์ผ ํฉ๋๊น? ๋ฒ์๋ฅผ ๋ฐ์ ์ํค๋ ํ์ฌ ์๋ฃจ์ ์ ๋งค์ฐ ํผ๋์ค๋ฝ์ต๋๋ค(๊ทธ๋ฌ๋ ํฌ๊ด์ ์ธ ๋ฒ์๊ฐ ์๋ ๊ฒฝ์ฐ์๋ ๊ทธ๋ ์ง ์์ ์ ์์).
์๋ฅผ ๋ค์ด ๋์ ๊ฐ๋๊ฒ ๋จ์ง ์๊ณ ๋ ์ด๊ฒ์ ์ฝ๊ณ ์ดํดํ ์ ์์ต๋๊น?
for i in (1..l.len()).rev() { ... }
ํธ์ง: ๊ทธ๋ฆฌ๊ณ GitHub์ ๊ธ๊ผด์ ์ฌ์ฉํ๋ฉด l
๊ฐ 1
์ฒ๋ผ ๋ณด์ด๊ธฐ ๋๋ฌธ์ ํจ์ฌ ๋ ํผ๋์ค๋ฝ์ต๋๋ค.
๋ค๊ฑฐํฐ๋ธ ์คํ ์ฌ์ด์ฆ๋ก ์ถฉ๋ถํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
Matlab ๊ตฌ๋ฌธ a:b
๋ฐ a:step:b
์์ต๋๋ค.
2016๋ 11์ 4์ผ 00์ 50๋ถ์ "Ott" [email protected]์ด ์์ฑํ์ต๋๋ค.
๋ค๊ฑฐํฐ๋ธ ์คํ ์ฌ์ด์ฆ๋ก ์ถฉ๋ถํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
โ
๋น์ ์ด ์ธ๊ธ๋์๊ธฐ ๋๋ฌธ์ ์ด๊ฒ์ ๋ฐ๋ ๊ฒ์ ๋๋ค.
์ด ์ด๋ฉ์ผ์ ์ง์ ๋ต์ฅํ๊ณ GitHub์์ ํ์ธํ์ธ์.
https://github.com/rust-lang/rust/issues/28237#issuecomment -258344460,
๋๋ ์ค๋ ๋ ์์๊ฑฐ
https://github.com/notifications/unsubscribe-auth/AAC3n3kwnGH6POQb4dGwCwJ8yOGqPSBQks5q6rmDgaJpZM4F4LbW
.
@durka ๊ทธ๋ ๋ค๋ฉด a
๋๋ b
๊ฐ ์๋ ํ์ฌ ..
์ ๋๋ฑํ ๊ฒ์ ๋ฌด์์
๋๊น? ๊ทธ๋ฅ :
?
๋ด๊ฐ ๋ณด์ง ๋ชปํ ๊ฒ์ด RFC์ ๊ธฐ๋ก๋์ด ์์ต๋๋ค. ํ๋์ ๋ํด ๋ค๋ฅธ ์ด๋ฆ์ด ๊ณ ๋ ค๋์์ต๋๊น?
๋ค๋ฅธ ์ ํ์ด ์๋ ๊ฒฝ์ฐ ์๋ฏธ๊ฐ ๋ค๋ฅผ ๋ ๋ค๋ฅธ ํ๋ ์ด๋ฆ์ ๊ฐ๋ ๊ฒ์ด ์ ์ฉํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด "range.start"๋ ๋ชจ๋ ์ ํ์์ "ํํ ํฌํจ"์ ๋๋ค. ๊ทธ๋ฌ๋ "range.end"๋ ๋๋ก๋ ํฌ๊ด์ ์ด๊ณ ๋๋ก๋ ๋ฐฐํ์ ์ ๋๋ค. "๋"๊ณผ (strawman) "๋ง์ง๋ง"์ ๊ตฌ๋ณ์ ๊ทธ๊ฒ์ ๋ ๋ช ํํ๊ฒ ํฉ๋๋ค.
(๋ฌผ๋ก Range๋ฅผ ์ํด ๋ค๋ฅธ ์ ํ์ ํฌ๊ธฐํ ๊ฒฝ์ฐ์๋ ๊ด๋ จ์ด ์์ต๋๋ค.
ํฌ๊ด์ ์ธ ๋ฒ์๋ ์ฌ์ ํ std::collections::range::RangeArgument๋ฅผ ๊ตฌํํด์ผ ํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
pub trait RangeArgument<T> {
fn start(&self) -> Option<&T> { ... }
fn end(&self) -> Option<&T> { ... }
}
๊ทธ ๋ค์์
impl RangeArgument<T> for RangeToInclusive<T> {
fn end(&self) {
Some(self.end+1)
}
}
๋ฐ๋ผ์ fn foo<T, R: RangeArgument<T>>(arg: R)
๋ ํฌํจ ๋ฒ์ ๋๋ ๋ฐ๊ฐ๋ฐฉ ๋ฒ์๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค.
@durka a:b ๊ตฌ๋ฌธ์ ๋ฌธ์ ๋ ์ ํ ascription์ด ๋ชจํธํ๋ค๋ ๊ฒ์
๋๋ค. b
๋ณ์ ๋๋ b
์ ํ์ ์๊ตฌํ๊ณ ์์ต๋๊น? ๋ถ๋ช
ํ ํ๋ฅญํ Rust ํ๋ก๊ทธ๋๋จธ๋ก์ ์ฐ๋ฆฌ๋ ์ ํ์ ๋๋ฌธ์๋ก ํ์ํ์ง๋ง ์ปดํ์ผ๋ฌ๋ ์ด๋ฅผ ์ ์ถํ ์ ์์ต๋๋ค.
.. ์ํ ์ ์๊ฐ ์๋ ์ฐ์ฐ์( @duesee ์ฃผ์ ๊ธฐ๋ฐ):
[1..4] // 1, 2, 3, 4
[1..4[ // 1, 2, 3
]1..4] // 2, 3, 4
]1..4[ // 2, 3
์ฌ์ฉ( @0tt ์์ ๊ธฐ๋ฐ):
fn fizzbuzz_to(n: u32) {
for n in [1..n + 1] {
fizzbuzz(n);
}
}
์ด ๊ฒฝ์ฐ ..
ํํธ๋ก ์ฌ์ฉํ์ง๋ง ๊ฒฝ๊ณ๋ [
๋ฐ ]
@adelarsq : Rust์์๋ ์์์ ํฌํจํ์ง ์๋ ๋ฒ์๊ฐ ํ์ํ์ง ์์ต๋๋ค. ๊ทธ๋ฌ๋ ๋๊ดํธ ๊ตฌ๋ฌธ์ ํ์ฉ๋๋ ๊ฒฝ์ฐ์๋ง ์๋ฏธ๊ฐ ์์ต๋๋ค. ๋ํ ๋๊ดํธ ๊ตฌ๋ฌธ์ด ์ด๋ฏธ ์ฌ์ฉ๋์์ต๋๋ค.
๋๋ ..=
๊ฐ ํฌ๊ด์ ์ธ ๋ฒ์๋ฅผ ์ํ ๊ฐ์ฅ ํฉ๋ฆฌ์ ์ธ ์ ํ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค.
...
๊ฐ ์๋ ..
์ ์๊ฐ์ ์ผ๋ก ์ฝ๊ฒ ๊ตฌ๋ณํ ์ ์์ต๋๋ค. ์
๋ ฅ์ ๊ธฐํ ...
์๋ฏธํ๋ ๊ฒฝ์ฐ ..
ํ๊ฑฐ๋ ๊ทธ ๋ฐ๋์ ๊ฒฝ์ฐ๋ ๋ง์ฐฌ๊ฐ์ง๊ณผ ๋ชฐ๋๋๋ณด๋ค ๋์ ..=
.
(์๊ฐ์ ์ธ์ง ๊ฐ๋ฅ์ฑ๊ณผ ๋ฒ๊ทธ ๊ฐ๋ฅ์ฑ ๋ชจ๋์์ C์์ if(a == b)
๋์ if(a = b)
๋ฅผ ์ค์๋ก ์
๋ ฅํ๋ ๊ฒ๊ณผ ๋น์ทํฉ๋๋ค).
๊ทธ๋ฆฌ๊ณ ..=
๋ ๊ทธ ์๋ฏธ๋ฅผ ์์งํ๊ธฐ ๋๋ฌธ์ ์ธ์ฐ๊ธฐ ์ฝ์ต๋๋ค( i ..= j
๋ i .. j
๋ฒ์๋ฅผ ์๋ฏธํ๊ณ ์ฌ๊ธฐ์ i = j
).
์ฃผ์ ๋ถ๋ง์ ...
๊ฐ ..
์ ๋๋ฌด ์ ์ฌํ๋ค๋ ๊ฒ์
๋๋ค. ๋ ๋ง์ ๋ฌธ์๋ฅผ ํฌํจํ๋ ๋ค๋ฅธ ์ ์์ด ์์ ๋ ์๋ฌด๋ ๋ฌธ์ ์์ ๋ํด ๋ถํํ์ง ์๊ณ ๋๊ดํธ ์ผ์น ๋ฐ ํน์ ์ฅ์์์์ ์ฌ์ฉ๊ณผ ๊ฐ์ ๊ฒ์ ๋ํด์๋ง ๋ถํํ๋ค๋ ๊ฒ์ ์์์ต๋๋ค.
๊ทธ๋ ๋ค๋ฉด ํฌํจ ๋ฒ์์ ๊ฒฝ์ฐ ....
๋ ์ด๋ป์ต๋๊น? ๊ทธ๊ฒ์ ์ฌ์ ํ โโ๋ฒ์์ฒ๋ผ ๋ณด์ผ ๊ฒ์
๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋ด๊ฐ ๋งํ๋ฏ์ด ์๋ฌด๋ ์ถ๊ฐ ๋ฌธ์๊ฐ ํ์ํ ์๋ฃจ์
์ ์ ๊ฒฝ ์ฐ์ง ์๋ ๊ฒ ๊ฐ์ต๋๋ค. ..=
๋ณด๋ค ๋ค์ ๋ถ์์ ํ์ง ์ฌ๋ถ๋ ๋
ผ์์ ์ฌ์ง๊ฐ ์์ต๋๋ค.
for i in 0....10 { println!("just a thought"); }
๊ธฐ๋ณธ ๋์์ด ํฌํจ๋ ๊ฒฝ์ฐ ..! ์ฐ์ฐ์๊ฐ ์ฌ์ฉ๋ฉ๋๋ค(๊ฑฐ์ ๋ถ์ ์ผ๋ก).
....
์ ๋ฌธ์ ๋ ...
์ค์ ๋ก ์กด์ฌํ๋ ๊ฒฝ์ฐ ์ฝ๊ฐ์ ํผ๋์ด ์์ ์ ์๋ค๋ ๊ฒ์
๋๋ค.
๋๋ ...
์ข์ํ์ง ์์ต๋๋ค. ์๋ํ๋ฉด Ruby ์ ์ ํํ ๋ฐ๋์ด๊ธฐ ๋๋ฌธ์
๋๋ค.
์ง๊ธ๊น์ง ๊ฐ์ฅ ์ข์ ์ต์
์ ..=
์
๋๋ค.
@adelarsq๋ ....
์ด์์๋ ๋์ฒด ํ ๊ฒ์ด๋ค ...
๋น์ ์ดํ๋ ค๊ณ ํ๋ฉด ๊ทธ๋์, ์ฐ์ฐ์๋ฅผ ..
ํ๊ณ ๋ณ๋์ ์ถ๊ฐ .
, ๊ทธ๊ฒ์ ๊ฒ์
๋๋ค ์ปดํ์ผ์ ์๊ฐ ์ค๋ฅ, ....
๋ฅผ ์๋ํ๊ณ ์ ์ ์์ด๋ฒ๋ฆฌ๋ฉด ๊ทธ๊ฒ๋ ์ค๋ฅ๊ฐ ๋ฉ๋๋ค.
ํจํด ์ผ์น์์ ...
๋ ํฌํจ ๋ฒ์์ ์ผ์นํ๋ ๋ฐ ์ฌ์ฉ๋๋ฏ๋ก ํฌํจ ๋ฒ์ ํํ์๋ ...
๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
๋จ๊ณ๊ฐ ์๋ ๋ฒ์์ ๊ฒฝ์ฐ Haskell ๊ตฌ๋ฌธ์ ์ ํธํฉ๋๋ค(์: 1,3..9
=> [1,3,5,7]).
์คํ
/๋ฆฌ๋ฒ์ค ๋ฑ์ ๋ฒ์์ ๊ฒฝ์ฐ ๋ณต์กํ ๋ฆฌํฐ๋ด ๋์ ์ข์ ๊ตฌ์ ํจ์(์ผ์ข
์ Range
์์ฑ์)๋ฅผ ์ ํธํฉ๋๋ค.
์ฟผ๋ ๋ํธ ....
๋ ๊ด์ฐฎ์ต๋๋ค( ..=
๋ IMHO ๊ด์ฐฎ์). ์ผ๊ด์ฑ์ ์ํด ํจํด ์ผ์น์์๋ ํ์ฉ๋ ์ ์์ต๋๋ค(๊ฒฐ๊ตญ ํจํด์์ ...
๊ฐ ๋ ์ด์ ์ฌ์ฉ๋์ง ์์ ์ ์์).
๋์๊ฒ ..=
๋ ....
์๋ ์๊ฐ์ ์๋ฏธ์
๋๋ค.
๋ฐฉ๊ธ ๋ญ๊ฐ๋ฅผ ๋ฐ๊ฒฌํ์ต๋๋ค.
์ํ์์ โ i: 0 โค i < 10
์ฐ๋ฉด ๋ค์๊ณผ ๊ฐ์ด ๋ฒ์ญ๋ฉ๋๋ค.
for i in 0 ..< 10 { }
์ด๊ฒ์ ์ผ๊ด์ฑ์ด ์์ต๋๋ค.
๊ทธ๋ฌ๋ โ i: 0 โค i โค 10
์ ๋ค์๊ณผ ๊ฐ์ด ๋ฒ์ญ๋ฉ๋๋ค.
for i in 0 ..= 10 { }
์ฌ๊ธฐ์ โค์ =๋ก ๋ฒ์ญ๋์ด ์ผ๊ด์ฑ์ด ์์ต๋๋ค.
์ด๊ฒ์ ์์ ๊ฑฐ ์ธ์ฐจ์ฅ์ผ ์ ์์ง๋ง,
for x in 0 ..<= 10 { }
๋ ๋ง๋ ๋๋. ์ด๊ฒ์ ๋ด C ๋ฐฐ๊ฒฝ ๋๋ฌธ์ผ ์ ์์ต๋๋ค.
for (unsigned int i = 0; i <= 10; ++i) { }
" i
๊ฐ 10
๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ผ๋ฉด ๋ฌด์ธ๊ฐ๋ฅผ ํ์ญ์์ค"๋ก ํด์๋ฉ๋๋ค. CI์์๋ ๋ฃจํ ์กฐ๊ฑด์์ ==
๋ฅผ ์ฌ์ฉํ์ง ์๋ ๊ฒ์ ์ ํธํฉ๋๋ค. ๊ฐ์ ๋ฐ์ด ๋๊ณ ๋ฌดํ ๋ฃจํ๋ก ๋๋ ๊ฐ๋ฅ์ฑ์ด ์๊ธฐ ๋๋ฌธ์
๋๋ค. ์ด๊ฒ์ Rust์์๋ ์ผ์ด๋ ์ ์๋ ์ผ์ด์ง๋ง for i in 1 ..= 10
๋ฅผ C๋ก ๋ฒ์ญํ๋ฉด ์ ํํ ๊ทธ๊ฒ์ ์์ํ ์ ์์ต๋๋ค.
๋ ๋์๊ฐ์,
for i in 0 <..<= 10 { }
์๋ช ํ ๊ฒ์ ๋๋ค.
ํธ์ง: ์ฌ๊ธฐ์ =
๋ง ์ฌ์ฉํ๋ ๊ฒ์ด ์ด๋ป๊ฒ ํผ๋์ค๋ฌ์ธ ์ ์๋์ง ๋ณด์ฌ์ฃผ๊ธฐ ์ํ ๋์ ์ญ ์์ ๊ฐ ์์ต๋๋ค. ๊ฑด์ค์ ์ธ ๊ฒ๋ณด๋ค ๋ ํผ๋์ค๋ฌ์์ ์ญ์ ํ์ต๋๋ค.
@duesee >=..>
๋ ์ด๋ป๊ฒ ์๋ช
ํฉ๋๊น? <=..>
(<= 10 and > 0) ์ด์ด์ผ ํ์ง ์์ต๋๊น?
IMO๋ ์ค๋ช
์ด ํ์ ์์ผ๋ฉฐ ์ด์์๋ก์ ๋๋ฌด ๊ธธ๊ณ ๋น๋ฐ์ค๋ฝ์ต๋๋ค.
(์ฐ์ฐ์๋ IMO 3์ ์ด์์ด์ด์ผ ํฉ๋๋ค).
Btw, ์ฐ๋ฆฌ๋ ์ด๋ฏธ ์ญ๋ฐ๋ณต ๋ฐฉํฅ์ ํํํ๋ ๋ฐฉ๋ฒ์ ๊ฐ์ง๊ณ ์์ต๋๋ค: .rev()
ํฌ๊ด์ ์ธ ๋ฒ์์ .step_by()
๋ํ ์ฐ์ฐ์๋ง ํ์ํฉ๋๋ค.
๋จ๊ณ์ ๊ฒฝ์ฐ ๊ตฌ๋ฌธ์ a .. b | s
์ ์์ต๋๋ค(ํฌํจ ๋ฒ์์ ๊ฒฝ์ฐ: a ..= b | s
).
@norru : for i in (1..l.len()).rev() { ... }
์์ ๋ ๋๋ถ๋ถ์ ๊ฒฝ์ฐ ์ฌ๋ผ์ด์ค( for x in arr[1..].rev() { ... }
)๋ฅผ ์ฌ์ฉํ๋ฏ๋ก ๋งค์ฐ ๋นํ์ค์ ์ด์ง๋ง ์ธ๋ฑ์ค ์คํ์ผ์ ๋ฐ๋ณต์ ์ฌ์ฉํด์ผ ํ๋ ๊ฒฝ์ฐ์๋(๊ธฐ๋ณธ์ ์ผ๋ก๋ง i
์๋ ๋ฐฐ์ด ์์๋ฅผ ์์ ํ ๋ ์ฝ๊ธฐ๊ฐ ์ ํ ์ด๋ ต์ง ์์ต๋๋ค. (๊ทธ๋ฌ๋ ๋๋ ์ผ๋ฐ์ ์ผ๋ก ์ธ์๊ฐ ๋ฆฌํฐ๋ด ์ซ์๊ฐ ์๋ ๋ ..
์ฃผ์์ ๊ณต๋ฐฑ์ ๋ก๋๋ค: (1 .. arr.len()).rev()
)
Rust ์ฐ์ฐ์์์ ๋ฌผ๊ณ ๊ธฐ์ >=..>
๋ ๋ง์ ์ข
!
๊ทธ๋ฌ๋ ๋๋ ์ข์ํ๋ค ..<=
๋ง์ (ํธ์ง : ์ผ์,๋ฅผ ์ ์ธํ๊ณ match
๊ฐ ๋ณด์ด๋ ๊ณณ <= 0 =>
:()
..
์ ๋งค์ฐ ๋ค๋ฆ
๋๋ค...=
์ +=
์๋ฏธ๊ฐ ์์ต๋๋ค...<
์๋ ๋
ผ๋ฆฌ์ ์ผ๋ก ์ผ์นํฉ๋๋ค. ๋ ์ธ์ด๊ฐ ์๋ ดํ๋ ๊ฒ์ด ๊ฐ๋ฅํฉ๋๋ค!@pornel : >=..> more species of fish in Rust operators!
ํคํค :-)
@Boscop : ์ํ์ ์ ์์ฒ๋ผ ์ฝ์ผ๋ฉด ์๋ช
ํฉ๋๋ค. 10 >= i > 2
. ๋๋จธ์ง ๋ต๋ณ: ์ ์ ์ผ๋ก ๋์ํฉ๋๋ค. ๋ ๋ฒ์งธ ๋ถ๋ถ์ ํฅํ ํ์ฅ์ ์ํด ์ฐจ๋จ๊ธฐ๋ฅผ ๋์
ํ์ง ์๊ธฐ ์ํด ..=
๋ ..<=
๋ฅผ ์ฌ๊ณ ํ๋๋ก ๋๊ธฐ๋ฅผ ๋ถ์ฌํ๊ธฐ ์ํ ๊ฒ์
๋๋ค. ๊ทธ์ ๋ฐ๋ผ ๋ต๋ณ์ ์์ ํ๊ฒ ์ต๋๋ค.
..
ํ๊ธฐ๋ฒ์ ๋ํ ๊ฒฝ๊ณ ๋๋ ์ค๋ฅ ํ๋๊ทธ๋ฅผ ์ป์ ์๋ ์์ต๋๋ค.
..
๊ฐ ๋ด ์ฝ๋๋ฒ ์ด์ค์ ์ด๋์๋ ํ์๋๋ ๊ฒ์ ์ํ์ง ์์ต๋๋ค.
..=
์ ๋ ํ ํ๋ฅผ ๋์ง๊ณ ์ถ์ต๋๋ค.
..<
๋ฐ ..<=
์ ๋จ์ ์ ์ด๋ฏธ ์ ํจํ ์ฝ๋๋ผ๋ ๊ฒ์
๋๋ค(๋ค๋ฅธ ๊ฐ๊ณผ ๋น๊ต๋๋ ์ค๋ฅธ์ชฝ ์ด๋ฆฐ ๋ฐฐํ์ ๋ฒ์).
@thepowersgang
..< ๋ฐ ..<=์ ๋จ์ ์ ์ด๋ฏธ ์ ํจํ ์ฝ๋๋ผ๋ ๊ฒ์ ๋๋ค(์ค๋ฅธ์ชฝ์ผ๋ก ์ด๋ฆฐ ๋ฐฐํ์ ๋ฒ์๊ฐ ๋ค๋ฅธ ๊ฐ๊ณผ ๋น๊ต๋จ).
์ฌ์ค์ด์ง๋ง ์ด๊ฒ์ด ์ค์ ๋ก ๋ฌธ์ ๊ฐ ๋ ๊ฐ๋ฅ์ฑ์ ๊ฑฐ์ ์์ต๋๋ค.
๋๋ ์ฌ๊ธฐ์ ๋ค๋ฅธ ์ ์๋ณด๋ค ...
๋ฅผ ๋งค์ฐ ์ ํธํฉ๋๋ค. ํ์ง๋ง ๋์ฒด ๊ตฌ๋ฌธ์ ์ ํํด์ผ ํ๋ค๋ฉด ..=
๊ฐ ๋ ๊ฒ์
๋๋ค.
@nikomatsakis
์ ๋ ..<
๋ฐ ..<=
์ต์
์ด ์ธ์ด ๋ฌธ๋ฒ์ ์ง๊ด์ ์ธ ๋ชจ๋ธ์ ํ๋ํ๋ ๊ณผ์ ์ ์ง๋์น๊ฒ ๋ณต์กํ๊ฒ ๋ง๋ ๋ค๋ ์ด์ ๋ก ์์ ํ ๋ฐ๋ํฉ๋๋ค.
์ข ๋ ๊ฐ์ธ์ ์ธ ๋ฉ๋ชจ์์, ๋๋ ๊ทธ๊ฒ๋ค์ด ์ ์ด๋ ํฐ๋ณดํผ์ฌ๋งํผ ์ถํ๊ณ ์ฐ์ํ์ง ์๋ค๊ณ ์๊ฐํฉ๋๋ค.
๋๋ ํจ๊ป ๊ฐ๊ณ ์ถ์ด์ ..
๋ง์ฐ์ค ์ค๋ฅธ์ชฝ ๋
์ ๋ฐ ..=
ํฌํจ์ ๋ํ ๊ฐ์ ์๊ฐ์ ์ฐ์ํจ ์ฌ์ด์ ์ต์ ์ ๊ท ํ, ์ง๊ด์ ์ผ๋ก ์ดํดํ๊ธฐ ์ฝ๊ฒํ๊ณ , ํผ๋์ค๋ฝ๊ฒ ๋ ์ด๋ ต๊ฒ ๋ง๋๋ ๋ฌธ๋ฒ ๊ท์น.
...
์ ๋ง ..
๊ตฌ๋ณ๋์ง ์์ต๋๊น? ๋ด๊ฐ ์ ๊ทธ๋ ๊ฒ ์ข์?
@tshepang
๋๋ ...
๊ฐ ๋ฏธํ์ ์ผ๋ก ๋งค๋ ฅ์ ์ด๊ธฐ ๋๋ฌธ์ ์ข์ํ์ง๋ง if (x == 2) {
์๋ if (x = 2) {
๋ฅผ ์ฐ๋ ๊ฒ๊ณผ ์ ์ฌํ๊ฒ ๋์ ๋์ง ์๋ ๋ฒ๊ทธ๋ฅผ ์ผ์ผํฌ ๊ฐ๋ฅ์ฑ์ด ์๋ค๊ณ ์ฐ๋ คํ๊ธฐ ๋๋ฌธ์ ๋ฐ๋ํฉ๋๋ค. C/C++์ if (x == 2) {
. (๊ทธ๋ฆฌ๊ณ ๊ทธ๊ฒ์ด ์ผ๋ง๋ ์ํํ ๊ฒ์ผ๋ก ํ๋ช
๋์๋์ง๋ ์ ํ๋ฆฝ๋์ด ์์ต๋๋ค.)
@ssokolow
Linting ๋๋ ์ต์ ํ๋๊ทธ๋ก ๋ ์ ํด๊ฒฐ๋๋ IMO์ ๋๋ค. ๋จ์ผ ํ์ผ/ํ๋ก์ ํธ์์ ํ๊ธฐ๋ฒ์ ํผํฉํ๋ ๋ฐ ๋ง์ด ์ฌ์ฉ๋์ง ์์ต๋๋ค.
๋ํ ๋ค๋ฅธ ์ต์
๋ณด๋ค ....
๋ฅผ ์ ํธํฉ๋๋ค. ๋๋น/๊ฐ๊ฒฉ์ ๋ ๋ฐฐ๋ก ๋๋ฆฌ๋ฉด ํนํ ์์ชฝ์ ๊ธฐํธ๊ฐ ๋๋ํ ๋ฐฐ์น๋์ด ์์ ๊ณต๊ฐ์ ๊ฒฉ๋ฆฌ๋ ๊ฒ๋ณด๋ค ๋ ๋๋ ทํ๊ฒ ๋ง๋ค ์ ์๋ค๋ ์ ์ ๊ณ ๋ คํ ๋ ์ถฉ๋ถํ ๋ช
ํํด์ผ ํฉ๋๋ค.
@ssokolow
์๊ฐ์ ์ฐ์ํจ, ์ง๊ด์ ์ผ๋ก ํ์ ํ๊ธฐ ์ฌ์ด ๋ฌธ๋ฒ ๊ท์น, ๊ทธ๋ฆฌ๊ณ ๋ ๊ฐ์ง๋ฅผ ํผ๋ํ๊ธฐ ์ด๋ ต๊ฒ ๋ง๋๋ ๊ฒ ์ฌ์ด์ ์ต์์ ๊ท ํ์ ์ํด ..๋ฅผ ์ค๋ฅธ์ชฝ ๋ฐฐํ์ ์ผ๋ก, ..=๋ฅผ ํฌํจํฉ๋๋ค.
๊ทธ๊ฒ์ ๋๋ฅผ ์ํด ์๋ํฉ๋๋ค. ์ฃผ์ ๋ฌธ์ ๋ ๋ค๋ฅธ ๊ฒฝ์ฐ(์: <..<=
)์ ๋ํ ๊ตฌ๋ฌธ ๋ ์ํ๋์ง ์ฌ๋ถ์
๋๋ค. ๊ฐ์ธ์ ์ผ๋ก ..
๋ฐ ..=
์ผ์ด์ค์ 99.5%๋ฅผ ์ปค๋ฒํ๋ค๊ณ ์๊ฐํฉ๋๋ค. ์ ๋ ์ฃผ์ ์ฌ์ฉ ์ฌ๋ก๊ฐ drain
์ ๊ฐ์ API๋ผ๊ณ ์๊ฐํ๋ฉฐ ํ์ฌ ๊ฑฐ๊ธฐ ์์
cc @rust-lang/libs
์ฐ๋ฆฌ๋ ๋ค์์ ์ฌ์ฉํ์ฌ ๋ฒ์๋ฅผ ์ง์ ๊ตฌ์ฑํ๋ ๋๋ฌธ ๊ฒฝ์ฐ๋ฅผ ๋จ๊ธธ ์ ์์ต๋๋ค.
๊ตฌ์กฐ์ฒด ๋ฆฌํฐ๋ด.
2017๋
2์ 22์ผ ์์์ผ ์คํ 4์ 50๋ถ, Niko Matsakis [email protected]
์ผ๋ค:
@ssokolow https://github.com/ssokolow
๋๋ .. ์ค๋ฅธ์ชฝ ๋ฐฐํ์ ๋ฐ ..= ์ต๊ณ ๋ก ํฌ๊ด์ ์ผ๋ก ๊ฐ ๊ฒ์ ๋๋ค
์๊ฐ์ ์ฐ์ํจ๊ณผ ์ง๊ด์ ์ผ๋ก ์ดํดํ๊ธฐ ์ฌ์ด ๋ฌธ๋ฒ ๊ท์น ์ฌ์ด์ ๊ท ํ
ํ์ ํ์ฌ ๋ ๊ฐ์ง๋ฅผ ํผ๋ํ๊ธฐ ์ด๋ ต๊ฒ ๋ง๋ญ๋๋ค.๊ทธ๊ฒ์ ๋๋ฅผ ์ํด ์๋ํฉ๋๋ค. ์ฃผ์ ๋์ ๋ ์ฐ๋ฆฌ๊ฐ ๋ํํ ์ง ์ฌ๋ถ์ ๋๋ค
๋ค๋ฅธ ๊ฒฝ์ฐ์ ๊ตฌ๋ฌธ(์: <..<=). ๋๋ ๊ฐ์ธ์ ์ผ๋ก .. ๊ทธ๋ฆฌ๊ณ ..=
99.5%์ ๊ฒฝ์ฐ๋ฅผ ๋ค๋ฃน๋๋ค. ์ฃผ์ ์ฌ์ฉ ์ฌ๋ก๋ ๋๋ ์ธ๊ณผ ๊ฐ์ API๋ผ๊ณ ์๊ฐํฉ๋๋ค.
์ฐ๋ฆฌ๋ ํ์ฌ ๊ฑฐ๊ธฐ์์ ๋ ํนํ ์ ๊ทผ ๋ฐฉ์์ ์ฑํํ์ต๋๋ค
https://doc.rust-lang.org/std/collections/struct.BTreeMap.html#method.range
.์ฐธ์กฐ @rust-lang/libs https://github.com/orgs/rust-lang/teams/libs
โ
๋น์ ์ด ์ธ๊ธ๋์๊ธฐ ๋๋ฌธ์ ์ด๊ฒ์ ๋ฐ๋ ๊ฒ์ ๋๋ค.
์ด ์ด๋ฉ์ผ์ ์ง์ ๋ต์ฅํ๊ณ GitHub์์ ํ์ธํ์ธ์.
https://github.com/rust-lang/rust/issues/28237#issuecomment-281815665 ,
๋๋ ์ค๋ ๋ ์์๊ฑฐ
https://github.com/notifications/unsubscribe-auth/AAC3n-aKwYKFq4VI9RizL0GkzXXSjTPwks5rfK2ngaJpZM4F4LbW
.
..=
ํจํด์์๋ ์ฌ์ฉํ ์ ์์ต๋๊น? ๊ธฐ์กด ...
๊ตฌ๋ฌธ์ ์ด๋ป๊ฒ ๋ฉ๋๊น?
๋ ์ด์ ์ฌ์ฉ๋์ง ์์ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ๊ทธ๊ฒ์ ์กด์ฌ๋
์ต์ํ ์๊ธฐ๋ก ์ฌ์ฉํฉ๋๋ค.
2017๋ 2์ 22์ผ ์์์ผ ์คํ 6์ 2๋ถ์ andrewtj [email protected]์์ ๋ค์๊ณผ ๊ฐ์ด ์ผ์ต๋๋ค.
I take it ..= ํจํด์ผ๋ก๋ ์ฌ์ฉ ๊ฐ๋ฅํ ๊น์? ๋ฌด์์ด ๋ ๊ฒ์ธ๊ฐ
๊ธฐ์กด ... ๊ตฌ๋ฌธ์ด ์์ต๋๊น?โ
๋น์ ์ด ์ธ๊ธ๋์๊ธฐ ๋๋ฌธ์ ์ด๊ฒ์ ๋ฐ๋ ๊ฒ์ ๋๋ค.
์ด ์ด๋ฉ์ผ์ ์ง์ ๋ต์ฅํ๊ณ GitHub์์ ํ์ธํ์ธ์.
https://github.com/rust-lang/rust/issues/28237#issuecomment-281834007 ,
๋๋ ์ค๋ ๋ ์์๊ฑฐ
https://github.com/notifications/unsubscribe-auth/AAC3nw_DaOMNxuIKw6ZFfXJW95QyijY4ks5rfL6DgaJpZM4F4LbW
.
@durka @andrewtj ์ฐ๋ฆฌ๊ฐ ๋ ์ด์ ์ฌ์ฉํ์ง ์์ ๊ฒ์ด๋ผ๊ณ ๊ฐ์ ํฉ๋๋ค.
..=
๋ +=
์ ๊ฐ์ ์๋ฏธ๋ก ์ฐ์ฐ์๋ก ์ฌ์ฉํ ์ ์์ต๋๋ค.
~
, 0~9
, 'A'~'Z'
์กฐ์ ~
์ฌ์ฉํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
..=
๋ ์ด๋ค ์์
์ ํด๋นํฉ๋๊น? -
๋ ๋ถ๋ช
ํ ์คํํ ์ ์์ต๋๋ค.
1-9 == -8
.
2017๋
2์ 22์ผ ์์์ผ ์คํ 8:04, Junfeng Liu ์๋ฆผ @github.com
์ผ๋ค:
..=๋ +=์ ๊ฐ์ ์๋ฏธ๋ก ์ฐ์ฐ์๋ก ์ฌ์ฉํ ์ ์์ต๋๋ค.
~๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข์ต๋๋ค(์: 0~9, 'A'~'Z').โ
๋น์ ์ด ์ธ๊ธ๋์๊ธฐ ๋๋ฌธ์ ์ด๊ฒ์ ๋ฐ๋ ๊ฒ์ ๋๋ค.
์ด ์ด๋ฉ์ผ์ ์ง์ ๋ต์ฅํ๊ณ GitHub์์ ํ์ธํ์ธ์.
https://github.com/rust-lang/rust/issues/28237#issuecomment-281856846 ,
๋๋ ์ค๋ ๋ ์์๊ฑฐ
https://github.com/notifications/unsubscribe-auth/AAC3n7N2dM4DAzc_uc5JdHit4IJgyvYGks5rfNsPgaJpZM4F4LbW
.
@durka ..=
๋ ํ ๋น ์ฐ์ฐ์์ฒ๋ผ ๋ณด์ด์ง๋ง ์ฌ์ฉ ์ฌ๋ก๋ ๋๋ฌผ์ด์ผ ํฉ๋๋ค. ~
์(๋) ์ ๋ณตํ์ง ์๋ ์กฐ์์
๋๋ค. ...
์ฌ์ฉํด๋ ๊ด์ฐฎ์ต๋๋ค.
impl Fill for Range<String> {
fn fill() -> String { ... }
}
impl FillAsign for RangeAssign<String> {
fn fill(&mut self) { ... }
}
(String::new("abc") .. String::new("f")).fill() // "abcdef"
(String::new("abc") ..= String::new("f")).fill() // ()
์ ์ฃ์กํฉ๋๋ค. ์ ๊ธ๊ผด์์ ๋์ผํ๊ฒ ๋ณด์
๋๋ค. ..=๊ฐ ํํฉ๋ฌผ์ธ์ง ๋ฌป๊ณ ์์์ต๋๋ค.
+=์ ๊ฐ์ ํ ๋น ์ฐ์ฐ์๋ ์ด๋ค ์ฐ์ฐ์ ์ํํฉ๋๊น(ํด๋น
+๋ก)?
2017๋
2์ 22์ผ ์์์ผ ์คํ 8:29, Junfeng Liu ์๋ฆผ @github.com
์ผ๋ค:
@durka https://github.com/durka ..= ๊ทธ๋ฅ ํ ๋น์ฒ๋ผ ๋ณด์ ๋๋ค
์ฐ์ฐ์์ ๊ฒฝ์ฐ ์ฌ์ฉ ์ฌ๋ก๋ ๋๋ฌผ์ด์ผ ํฉ๋๋ค. ~๋ ์กฐ์๊ฐ ์๋ ์กฐ์์ ๋๋ค.๋ฒ์์ ๋ํ impl ์ฑ์ฐ๊ธฐ
{
fn ์ฑ์ฐ๊ธฐ() -> ๋ฌธ์์ด { ... }
}
RangeAssign์ ๋ํ impl FillAsign{
fn ์ฑ์ฐ๊ธฐ(&mut self) { ... }
}
(String::new("abc") .. String::new("f")).fill() // "abcdef"
(๋ฌธ์์ด::new("abc") ..= ๋ฌธ์์ด::new("f")).fill() // ()โ
๋น์ ์ด ์ธ๊ธ๋์๊ธฐ ๋๋ฌธ์ ์ด๊ฒ์ ๋ฐ๋ ๊ฒ์ ๋๋ค.
์ด ์ด๋ฉ์ผ์ ์ง์ ๋ต์ฅํ๊ณ GitHub์์ ํ์ธํ์ธ์.
https://github.com/rust-lang/rust/issues/28237#issuecomment-281861478 ,
๋๋ ์ค๋ ๋ ์์๊ฑฐ
https://github.com/notifications/unsubscribe-auth/AAC3n39uqbADB1rNtBh3PBTRY2XBXOUNks5rfOD-gaJpZM4F4LbW
.
@durka @nikomatsakis ์ข์, ๊ธ์, ๋๋ ์ด๊ฒ์ด ๊ณง ํด๊ฒฐ๋๊ธฐ๋ฅผ ๋ฐ๋๋ค. ํ์ฌ ์ํฉ์ ์ด์ํ๊ณ ๊ตฌ๋ฌธ ๋ณ๊ฒฝ๋ ๋ง์ฐฌ๊ฐ์ง์ ๋๋ค.
@pornel ๋น๋ํ๋ ...
์์ match
๊ทธ๊ฒ์ด ์ข์ ํด๊ฒฐ์ฑ
์ด๋์ง ์๋๋ก, ํธํ์ฑ์ ๊นฐ ๊ฒ์ด๋ค. ๋๋ ์ฌ์ ํ ...
๊ฐ์ฅ ์ ์ ํ ๊ฒ์ ์ฐพ์์ต๋๋ค(๊ทธ๋ฌ๋ ์ด๊ฒ์ Ruby์ ์ ๋ฐ๋์ด์ง๋ง Rubyists๋ ์ ์ฌํ ๋ฌธ์ ์ ๋ํด ๋
ผ์ํ์ง ์์ต๋๋ค).
@hyst329 ํ์ง๋ง ...
๋ ์ค๋ฅ์ ๋ ์ทจ์ฝํ ์ ์์ต๋๋ค. .
๋ฅผ ๋๋ฝํ๊ฑฐ๋ ์ถ๊ฐํ๋ฉด ์๋ก์ด ์๋ฏธ๊ฐ ์๊ธฐ๊ธฐ ๋๋ฌธ์
๋๋ค.
๋น์ถ์ฒ์ ๋ฌผ๊ฑด์ ๋ง๊ฐ๋จ๋ฆฌ์ง ์์ต๋๋ค. ์ด์ ๊ตฌ๋ฌธ์ ๊ธฐ์กด ํ๋ก๊ทธ๋จ์ ๋ํด ์๊ตฌ์ ์ผ๋ก ์ง์๋์ด์ผ ํ์ง๋ง ์ฌ์ฉ์๋ ๋ฌธ์ ๋ฐ rustfmt๋ฅผ ํตํด ์ ๊ตฌ๋ฌธ์ผ๋ก ๋ฐฉํฅ์ ์กฐ์ ํ ์ ์์ต๋๋ค.
๊ทธ๋ฌ๋ ์ฌ์ฉ์๋ ๋ฌธ์ ๋ฐ rustfmt๋ฅผ ํตํด ์๋ก์ด ๊ตฌ๋ฌธ์ผ๋ก ๋ฐฉํฅ์ ์กฐ์ ํ ์ ์์ต๋๋ค.
๋๋ ๊ทธ๊ฒ์ ์ํด Rustfmt๋ฅผ ์ฌ์ฉํ์ง ๋ง ๊ฒ์ ๊ฐ๋ ฅํ ๊ถ์ฅํฉ๋๋ค. "์๋์ผ๋ก ๋ณ๊ฒฝ ์ฌํญ ์ ์ฉ" ๋ชจ๋์์ ์ฌ์ฉํ ๋ ...
์ ์ด์ ๊ฐ์ ํ์ง์ ์
ํ์ํฌ ์ ์์ต๋๋ค. ์คํ๋ฅผ ํจ์ฌ ๋ ๋ชฉ์ ์ด ์์ด ๋ณด์ด๋ ๊ฒ์ผ๋ก ์๋์ผ๋ก ๋ณํํ ์ ์๊ธฐ ๋๋ฌธ์
๋๋ค. (๋ฐ๋ผ์ ๋์ค์ ๊ฒ์ฌํ ๋ ๊ฐ๊ณผํ๊ธฐ ์ฝ๋๋ก ํฉ๋๋ค.)
์๋ ๊ณ ์น ์ ์๋ "์๋ฏธํ ๋ด์ฉ์ ํ์ธํ๊ณ ..
๋๋ ..=
์ฌ์ฉํ์ญ์์ค"๋ผ๋ ์๋ฏธ์ ์ปดํ์ผ๋ฌ ๊ฒฝ๊ณ ๋ ์ธ์ ์ค๋ฅ์ ๊ฐ๋ฅ์ฑ.
๋๋ ๋ฐ์ด์ด ์กด์ฌํ์ง ์๋ ๊ธฐ์กด ...
ํจํด์ ๋งฅ๋ฝ์์ ์ด์ผ๊ธฐํ๊ณ ์์์ ์ ์ํ์ญ์์ค. ํ์ฌ Rust๋ ํจํด์ด ...
๋ง ํ์ฉํ๊ณ ํํ์์ด ..
๋ง ํ์ฉํ๋ ์์ ๋ฐ์ด ์๋ ์ํฉ์ ์์ผ๋ฏ๋ก ๋ ๋ค ์คํ๋ก๋ถํฐ ์์ ํฉ๋๋ค.
๋ฌผ๋ก ํํ์์ ...
๋ฅผ ..=
๋ก ๋ณํํ๋ ๊ฒ์ ์ถ์ฒํ์ง ์์ต๋๋ค. ๋น์ฐํ ์คํ๊ฐ ์๊ตฌ์ ์ผ ์ ์๊ธฐ ๋๋ฌธ์
๋๋ค.
์. ๋๋ ๊ทธ๊ฒ์ ๋ํด ์๊ณ ์์๋ค. ์๊ธฐ์์ผ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค.
@adelarsq ์ค์ ๋ก 'a'..'z'
๋๋ 128u8..255u8
์ ๊ฐ์ ์ผ๋ฐ์ ์ธ ์ค๋ฅ๋ ๊ฒฝ๊ณ ๋ก cargo-clippy
์ฝ๊ฒ ํตํฉ๋ ์ ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋ํ ..
์ ...
์ ๋๋น๋ ๋ถ๋ช
ํ ๋ค๋ฆ
๋๋ค (๋ฌผ๋ก ๊ณ ์ ํญ ๊ธ๊ผด์ ์ฌ์ฉํ ๋; ์ฌ์ฉํ์ง ์๋ ๊ฒ์ ์ผ๋ฐ์ ์ผ๋ก Rust๋ฟ๋ง ์๋๋ผ ์ผ๋ฐ์ ์ผ๋ก ์์ค ์ฝ๋๋ฅผ ์์ฑํ๋ ๋ฐ ๋์ ์๊ฐ์
๋๋ค) .
...
๋์ โฆ
(์ ๋์ฝ๋ ์ํ ํ์) ๊ตฌ๋ฌธ์ ๋ง๋ค ์ ์์ต๋๋ค. ๊ทธ๋ ๊ฒ ํ๋ฉด ์ต์ํ ์๋ฌด๋ ์ค์๋ก ์
๋ ฅํ์ง ์์ ๊ฒ์
๋๋ค.
ํธ์ง: ์ค ์๋ฌด๋ ์ด ์ ์์ ์ง์งํ๊ฒ ๋ค๋ฃจ์ง ์์์ต๋๋ค :cry: ์์์ ๋ํด ์ฃ์กํฉ๋๋ค.
๋ชจ๋ฅด๊ฒ ์ต๋๋ค. ๋ง์ง๋ง์ผ๋ก Google ๋ฌธ์๋๊ตฌ๊ฐ ์๋์ผ๋ก ์ค์ํ๋ก ๋ณํํ๋ ๊ฒ์ ํ์ธํ์ต๋๋ค. ํ ์คํธ ํธ์ง ์ ๊ณ์ ์ฃผ์ ํ๋ ์ด์ด.
๋ํ, ๋ชจ๋ ์ฌ๋์ด ํธ๋ฆฌํ๊ฒ ์์ฑ ์
๋ ฅ์์ํ ์์ฑ ํค๊ฐ ์์ต๋๋ค. . ๊ทธ๋ค์ด ์ํ๋ ์๋ ๊ฒฝ์ฐ โฆ
Windows์์๋ ์ซ์ ํคํจ๋์ ํจ๊ป Alt + 0133
๋ฅผ ์ฌ์ฉํ์ฌ ์ค์ํ๋ฅผ ์
๋ ฅํ ์ ์์ต๋๋ค! โฆ
๊ทธ๋ฆฌ๊ณ ์ ์ฌํ ์ฝ๋ํฌ์ธํธ ๊ธฐ๋ฐ ๋ฉ์ปค๋์ฆ์ด X11 ๊ธฐ๋ฐ ๋ฐ์คํฌํ์ ๋ค์ํ ์คํ ๋ ์ด์ด์ ์กด์ฌํ์ง๋ง(๋๋ GTK+์ X11 ์ ๋ ฅ ์คํ์ด ์์ฒด ๋ ๋ฆฝ ์๋ฃจ์ ์ ๊ฐ์ง๊ณ ์์์ ๊ธฐ์ตํฉ๋๋ค) ์ฝ๋ํฌ์ธํธ๋ฅผ ์ซ์๋ก ๊ธฐ์ตํ๋ ๊ฒ์ ํฐ ๋ฒ๊ฑฐ๋ก์์ ๋๋ค.
Compose ๋ ์ง๊ด์ ์ธ ์๋ฃจ์ ์ ๋๋ค.
๋ด๊ฐ ๊ธฐ์ตํ๋ ์ ์ผํ Windows Alt ์ํ์ค๋ ์ด๋ ธ์ ๋ ๋ง๋ ๋ชจ๋ DOS ๋ฐฐ์น ํ์ผ ๋ฉ๋ด์ Alt + 219
์
๋๋ค.
ํ์ฌ ๊ตฌ๋ฌธ์ ์ด๋ฏธ ์ค๋ ์ ๋ถํฐ ์กด์ฌํฉ๋๋ค. ์ด๋ฏธ ์์ ํํ๊ณ ์ด ๋์๋ ์์ ๊ฑฐ ์ด๋์ ์ค์งํฉ์๋ค.
ํ์ฌ ๊ตฌ๋ฌธ์ ์ ์งํ๋ ๊ฒ์ ์ค์ ๋จ์ ์ด ๋ง๊ธฐ ๋๋ฌธ์ ์ฐ๋ฆฌ๊ฐ ํ ์ ์๋ ์ต์
์ ์ผ์
๋๋ค. ์ด๊ฒ์ ๋จ์ํ ์์ ๊ฑฐ ์ด๋์ด ์๋๋๋ค. ์ฌ๋ฐ๋ฅด๊ฒ ์ํ๋์ด์ผ ํฉ๋๋ค. ์ ์ฒด ์ค๋ ๋๋ฅผ ๊ฑด๋๋ฐ๊ณ ..=
๊ตฌ๋ฌธ์ ์ง๊ธ๊น์ง ๊ฐ์ฅ ๋ง์ด ์์ฉ๋์์ต๋๋ค...
์ด ์์ ์์ ๋๋ ๊ทธ๊ฒ์ด ์ฃฝ์ ๋ง์ ์น๋ ๊ฒ ๊ฐ์ ๋๋์ด ๋ค์ง๋ง ๊ทธ๊ฒ์ ๋ํด ์๊ฐํ๋ฉด... ..
์ ...
๋ ๋ง ๊ทธ๋๋ก ๊ฐ๋ฅํ ํ ๊ฐ์ฅ ์์ ๋ฌธ์์ ์ฌ๋ณธ์
๋๋ค. ์
๋ ฅํ๊ฑฐ๋ ์ฝ์ ์ ์๊ณ , ๋์ผํ ๋ฌธ์ ๊ทธ๋ฃน๊ณผ ํผํฉ๋์ด ์์ผ๋ฉฐ, ๋ ๊ฐ์ง ๋ชจ๋๋ฅผ ์์ ํ ๊ตฌ๋ณํ ์ ์๋ ๊ฒฝ์ฐ ๋งค์ฐ ์ผ๋ฐ์ ์ด๊ณ ์ข
์ข
์ง์ฆ๋๊ฒ ์ฐพ๊ธฐ ์ด๋ ค์ด ์ค๋ฅ ํด๋์ค(์ผ๋ถ ์ค๋ฅ)๋ฅผ ์์ฑํ ๊ฐ๋ฅ์ฑ์ด ์์ต๋๋ค. ์ฌ๋๊ณผ ๊ธฐ๊ณ์๊ฒ.
๋๋ ๋ง ๊ทธ๋๋ก ์ธ๊ณ์ ๋ค๋ฅธ ๊ตฌ๋ฌธ์ ์ํํ ์ ์์ต๋๋ค.
ํํธ์ผ๋ก๋ ๊ทธ ์ฐ๋ ค์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค. ๋ค๋ฅธ ํํธ์ผ๋ก๋ ํ์ฌ ...
ํจํด ์ผ์น ๊ตฌ๋ฌธ์ด ์ด๋ฏธ ํฌํจ๋์ด ์์ด Rust์ ๋ค๋ฅธ ๊ณณ์์ ์ด๋ฏธ ์ฌ์ฉ๋ ๊ตฌ๋ฌธ๊ณผ ์๋ฒฝํ๊ฒ ์ผ์นํฉ๋๋ค.
์๊ฐ ๋ฌธ์ ๊ฐ ์๊ฑฐ๋ 4k ๋ชจ๋ํฐ์ 10pt ๊ธ๊ผด์ ์ฌ์ฉํ๋ ์ฌ๋๋ค์ด ๊ทธ๋ด ์ ์๋ค๋ ๊ฒ์ ์๊ณ ์์ง๋ง ๊ฐ์ธ์ ์ผ๋ก ์ฐจ์ด์ ์ ์ธ์ํ๋ ๋ฐ ๋ฌธ์ ๊ฐ ์์ต๋๋ค.
ํ์ง๋ง ํฉ์๊ฐ ..=
์ ์๋ ๊ฒ ๊ฐ์ผ๋ฉฐ ์ ๋ ๊ด์ฐฎ์ ๊ฒ ๊ฐ์ต๋๋ค.
FWIW, ๋๋ ..
์๋ฏธํ ๋ ์ค์๋ก ...
์
๋ ฅํ ๋ค์ ์ ์ ๋์ ๋์น์ฑ์ง ๋ชปํ์ง๋ง ์ ์ ํ ๋ด ํ๋ก๊ทธ๋จ์ด ์ด์ํ๊ฒ ์๋ํ๋ ์ด์ ๊ฐ ๊ถ๊ธํ์ต๋๋ค.
์, ๋ ๋์ ๋๋ ์ฐจ์ด๊ฐ ์์ด์ผ ํ๋ฉฐ ..=
๊ฐ ๊ฐ์ฅ ํฉ๋ฆฌ์ ์
๋๋ค.
@rust-lang/lang ํ ๋ก ์ ์ํ ์ง๋ช
. ๋๋ ์ฐ๋ฆฌ๊ฐ ..=
์ฑํํ๊ณ ๊ทธ๊ฒ์ ํ๋ฃจ๋ผ๊ณ ๋ถ๋ฌ์ผ ํ๋ค๊ณ ์๊ฐํฉ๋๋ค. ์์ ๋ RFC๊ฐ ํ์ํฉ๋๊น? ๊ทธ๋ฅ ํด? ์ฌ๊ธฐ์๋ ํจํด์์ ๊ธฐ์กด ...
๊ตฌ๋ฌธ์ ๋ ์ด์ ์ฌ์ฉํ์ง ์๋ ๊ฒ์ด ํฌํจ๋ฉ๋๊น? (๋๋ ๊ทธ๋ ๊ฒ ๊ฐ์ ํ๋ค.)
๋๋ ๋ฒ์์ ...
๋ฅผ ์ฌ์ฉํ์ง ์๋ ๊ฒ์ ๊ฐ๋ ฅํ ์ฐฌ์ฑํฉ๋๋ค. ์ด ์ค๋ ๋ ๋๋ RFC ์ค๋ ๋์์ ์ด๋ฏธ ์ธ๊ธ๋์๋์ง๋ ๋ชจ๋ฅด๊ฒ ์ง๋ง ...
๊ฐ ..
์ ๋น์ทํด ๋ณด์ด๋ ๊ฒ ์ธ์๋ ...
์ ์ฌ์ฉํ ์๋ ์์ต๋๋ค ...
์
๋๋ค.
..=
๋ ๋ถ๋ช
ํด ๋ณด์ด๊ณ ์๋์ ์ผ๋ก ์ถํจ์ ..
๋ณด๋ค ๋ ์ผ๋ฐ์ ์ด๊ธฐ ๋๋ฌธ์ ์ ๋นํ๋ฉ๋๋ค.
์ฌ๊ธฐ์๋ ํจํด์ ๊ธฐ์กด ... ๊ตฌ๋ฌธ์ ๋ ์ด์ ์ฌ์ฉํ์ง ์๋ ๊ฒ์ด ํฌํจ๋ฉ๋๊น? (๋๋ ๊ทธ๋ ๊ฒ ๊ฐ์ ํ๋ค.)
์ข์ ์๊ฐ์ธ ๊ฒ ๊ฐ์ต๋๋ค. ...
์ ๋ํด ๊ฒฝ๊ณ ํ๊ณ ๊ฐ๋ฅํ ๊ฒฝ์ฐ ํจํด์์ ..
๋ฐ ..=
๋ฅผ ๋ชจ๋ ์ง์ํฉ๋๋ค.
๋๋ ์ผ๋ฐ์ ์ผ๋ก ๊ตฌ๋ฌธ ์
๋ฐ์ดํธ๋ฅผ ์ํ ์๋ํ๋ ๋๊ตฌ ์์ด ๋ง์ ์ฌ๋๋ค์๊ฒ ์ํฅ์ ๋ฏธ์น ๊ฒฝ๊ณ ๋ฅผ ๋์
ํ๋ ๊ฒ์ ๊ฒฝ๊ณํ์ง๋ง ...
์์ ..=
๋ก ๋ณ๊ฒฝํ๋ ๊ฒ์ ํนํ ๊ฐ๋จํ ๋ณ๊ฒฝ์
๋๋ค. ์ฐ๋ฆฌ๋ ๋ํ ๊ทธ๋ฌํ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ ๋๊น์ง ๋ ์ด์ ์ฌ์ฉํ์ง ์์ง๋ง ๊ฒฝ๊ณ ๋ก ๋ง๋๋ ๊ฒ์ ์ฐ๊ธฐํ ์ ์์ต๋๋ค. ๋ค๋ฅธ ์ฌ๋๋ค์ ์ด๋ป๊ฒ ์๊ฐํฉ๋๊น?
์ ๋ ...
๊ฐ ๋ "์ผ๋ฐ์ ์ธ" ๊ตฌ๋ฌธ์ด๊ธฐ ๋๋ฌธ์ ๊ฐ๋ ฅํ๊ฒ ์ฐฌ์ฑํฉ๋๋ค. ..=
๋ฅผ ์ฌ์ฉํ๋ ์ธ์ด๋ ๋ชจ๋ฅด์ง๋ง ..
๋ฐ ...
๋ฅผ ์ฌ์ฉํ๋ ์ธ์ด๋ ๋ง์ต๋๋ค.
..=
์ ๋ํ ๊ฐ์ ์ด ๊ฐํ๋ฉด ์๊ฐ์ ๋ฌธ์ ๋ฅผ ํผํ๊ณ ๋ค์ ๋ฌด๋ฃ๋ก ์ ๊ณตํ๊ธฐ ์ํด ํฌ๊ด์ ์ธ ๋ฒ์ ๊ตฌ๋ฌธ์ ์ฌ์ฉํ์ง ์๊ณ (๋์ ๋ด๊ฐ ๋ณด๊ธฐ์ ์ถฉ๋ถํ ๊ฐ๊ฒฐํด ๋ณด์ด๋ (a..b).inclusive()
๋ฉ์๋๋ฅผ ์ ํํจ) ๊ฐ๋ณ ์ ๋ค๋ฆญ์ ๊ฒฝ์ฐ ์ต๋ ...
์
๋๋ค.
ํธ์ง :์ ๋ ํ ํ๋ ๊ฐ์ ์ข์ ์ธ์ (a..b).inclusive()
์ฐ๋ฆฌ๊ฐ ์์งํด์ผํ๋ค๋ ๊ฒ์
๋๋ค ...
์ match
๋ถํํ๋๋ก ๊ต์ฒดํ๊ณ ์๋ก์ด ๊ตฌ๋ฌธ. :ํผ๋์ค๋ฌ์ด:
@steveklabnik ์ฌ๊ณผ์ด ๊ฒฝ์ฐ ์ด๋ฏธ ์ด๋๊ฐ์ (๋งค์ฐ ๊ธด) ์ค๋ ๋ ๋ง ์ธ๊ธํ๋ค : ๋ค๋ฅธ ์ธ์ด๋ ๋ชจ๋ ๋ฌด์์ ์ฌ์ฉ ..
๋ฐ ...
๊ฐ๊ฐ ๋
์ ์ ์ด๊ณ ํฌ๊ด์ ์ธ ๋ฒ์์ ๋ํ์?
Rust๋ ๋ค๋ฅธ ์ธ์ด์ ์ ์ฉํ ๊ธฐ๋ฅ๊ณผ ๊ตฌ๋ฌธ์ ์ฑํํ์ง๋ง ์ ํ์ ์ผ๋ก , ์ ์ ํ ๊ฒฝ์ฐ ๊ฑฐ๋ถํ๊ฑฐ๋ ์ ์ฉํ ์ญ์ฌ๊ฐ ์์ต๋๋ค.
@joshtriplett Ruby๋ ๋ ๋ค ์ฌ์ฉํ์ง๋ง ๋ฐ๋์ ์๋ฏธ๋ฅผ ๊ฐ์ต๋๋ค( ..
๋ ํฌํจ, ...
๋ ์ ์ธ). ๋๋ ๊ทธ๊ฒ์ด Ruby์์ ์ข์ ์๊ฐ์ด์๋ค๊ณ ์๊ฐํ์ง ์์ผ๋ฉฐ, ์ฐ๋ฆฌ๊ฐ ๋ ๋ชจ๋๋ฅผ ๊ฐ๋ ๊ฒ์ด ์ ์ฌ์ ์ผ๋ก ํจ์ฌ ๋ ํผ๋์ค๋ฌ์ธ ์ ์์ง๋ง ๊ฑฐ๊พธ๋ก ๋ ๊ฒ ๊ฐ์ต๋๋ค.
@joshtriplett ๋ด๊ฐ ๊ฐ์ฅ ์น์ํ ๊ฒ์ Ruby์
๋๋ค. Perl์์ ๊ฐ์ ธ์จ ๊ฒ์ด๋ผ๊ณ ์๊ฐํ์ง๋ง ํ์คํ์ง ์์ต๋๋ค. ๋๋ ..=
๋ณด๋ค Ruby์์ ๊ฑฐ๊พธ๋ก ๋ ์๋ฏธ๋ก ์ด ๋ ์ข์ต๋๋ค.
์์งํ ๋งํด์, ๋๋ ๋ค๋ฅธ ์ด๋ค ๊ฒ๋ณด๋ค ์์ ์ ์ธ ํฌ๊ด์ ์ธ ๋ฒ์ ๊ตฌ๋ฌธ์ ์ ํธํ๊ณ ..=
์ ๋ํ ๋์ ๊ฐ๋ ฌํ ํ์ค๋ ๊ฐ์ธ์ ์ธ ๊ฒ์ด๋ฉฐ ํฉ๋ฆฌ์ ์ธ ์ฌ๋๋ค์ ๋์ํ์ง ์์ ์ ์์์ ์ธ์ํฉ๋๋ค.
@steveklabnik Swift๋ ..<
. ์ ์๊ฐ์๋ ๋ง์ฃ ? ..=
์ ๋น์ทํ์ง๋ง ์๋ชป๋ ๊ฒฝ์ฐ์ ์ต์ ํ๋๋ค๋ ์ ์์ ๋ ๋์ ๊ฒ์
๋๋ค. =)
Swift๋ ๋ฐฐํ์ ์ธ ๊ฒฝ์ฐ ..<๋ฅผ ์ฌ์ฉํ๊ณ ํฌ๊ด์ ์ธ ๊ฒฝ์ฐ ...๋ฅผ ์ฌ์ฉํฉ๋๋ค(ํด๋น ์ฉ์ด๋
"๋ฐ๊ฐ๋ฐฉ" ๋ฐ "๋ซํ").
๋๋ ์ฌ์ ํ ..<(..๋ฅผ ์๊ธฐ๋ก ์ฌ์ฉ) ๋ฐ ..=๋ฅผ ์ข์ํฉ๋๋ค.
๊ทธ๋ฌ๋ ๋ ๋ค๋ฅธ ๋ฏธํด๊ฒฐ ์ง๋ฌธ(์๋ง๋ ์ด ์ถ์ ๋ฌธ์ ์ ๋ฒ์์ ์ํ์ง ์์ ์ ์์)์ ๋ซํ ๋ฒ์์ ๋ํ ๊ตฌ๋ฌธ์ "๊ทธ๋ฅ" ์ฑํํ ์ง, ์๋๋ฉด ์ฒซ ๋ฒ์งธ ์ง์ ์ด ์ด๋ฆฐ ๋ฒ์(์: Strawman >..> ๋ฐ >..=.
2017๋
3์ 16์ผ ๋ชฉ์์ผ ์คํ 2์ 19๋ถ, Niko Matsakis [email protected]
์ผ๋ค:
@steveklabnik https://github.com/steveklabnik Swift๋ ..<๋ฅผ ์ฌ์ฉํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
์ค๋ฅธ์ชฝ? ..=์ ๋น์ทํด ๋ณด์ด์ง๋ง ๋ ๋์๋ค๋ ์ ์์ ์ต์ ํ๋ฉ๋๋ค.
(์ด๋ชจ) ์๋ชป๋ ๊ฒฝ์ฐ์ ๋๋ค. =)โ
๋น์ ์ด ์ธ๊ธ๋์๊ธฐ ๋๋ฌธ์ ์ด๊ฒ์ ๋ฐ๋ ๊ฒ์ ๋๋ค.
์ด ์ด๋ฉ์ผ์ ์ง์ ๋ต์ฅํ๊ณ GitHub์์ ํ์ธํ์ธ์.
https://github.com/rust-lang/rust/issues/28237#issuecomment-287147321 ,
๋๋ ์ค๋ ๋ ์์๊ฑฐ
https://github.com/notifications/unsubscribe-auth/AAC3n0Wop5fJh9HVo7pSqo0riHm96Gm4ks5rmX1BgaJpZM4F4LbW
.
์ ์ฃผ๊ณก์ inclusive
ํจ์๊ฐ ์์ด๋ ์๊ด ์์ต๋๋ค.
for x in inclusive(1..10) {
}
๋๋ ์ฑ๋ฅ๊ณผ์ ๋์นญ์ฑ์ด ์ค๋๋ ฅ ์๋ ์ฃผ์ฅ์ด๋ผ๊ณ ๋๋ ์ ์ด ์์ต๋๋ค. ๋๋ ์ฐ๋ฆฌ๊ฐ ๋
์ ์ ์ธ ..
ํจํด์ ์ถ๊ฐํ๊ธฐ๋ก ๊ฒฐ์ ํ๋ค๊ณ ์๊ฐํ์ง๋ง ๋๋ ๊ทธ๊ฒ๋ค๋ ์ซ์ดํฉ๋๋ค - ์ด์ ํจํด์ ๊ฐ์ด ํจํด๊ณผ ์ผ์นํ์ง ์์ต๋๋ค! ๋ฒ์๋ฅผ ์ผ์น์ํค๋ ๊ฒ์ ๋ฒ์๋ฅผ ๋ฐ๋ณตํ๋ ๊ฒ๊ณผ ๊ทผ๋ณธ์ ์ผ๋ก ๋ค๋ฅด๋ฉฐ ๋์นญ์ด์ด์ผ ํ ์ด์ ๊ฐ ์์ต๋๋ค. ๋๋ ๊ทธ๊ฒ์ด ์ฌ์ ํ ์ต์
์ด๋ผ๋ฉด ํจํด์์ ..
๋ฅผ ํ์ฉํ์ง ์๋ ๊ฒ์ ์ ํธํ์ง๋ง ๊ทธ๋ ์ง ์๋ค๊ณ ์๊ฐํฉ๋๊น?
..=
๋ฐ ...
์ ๋จ์ ์ด ๋ชจ๋ ์ค์ํ๋ค๊ณ ์๊ฐํฉ๋๋ค. ..=
๋ ์๋นํ ์ด์ํ์ง๋ง ...
๋ ์ค๋ฅ ๊ฐ๋ฅ์ฑ์ 1๋งํผ ๋์
๋๋ค.
๊ทธ๋ฐ ๋์๋ ๋ฒ๊ทธ ๊ฐ๋ฅ์ฑ๋ณด๋ค ์ด์ํ๊ฒ ๋ณด์ด๋ ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข์ต๋๋ค(๋ชจ๋ ์ธ์ด๋ ๋ค๋ฅธ ์ธ์ด์๋ ์๋ ์ฐ์ฐ์๋ฅผ ๋์
ํฉ๋๋ค. ์๋ฅผ ๋ค์ด Swift์ ..<
, F# ๋ฐ Scala์ ๋ชจ๋ ์ฐ์ฐ). ์ด์จ๋ ์ฌ๋๋ค์ Rust ์ฑ
์ ์ฝ์ด์ผ ํ ๊ฒ์
๋๋ค.
๋ง์ ์ฌ๋๋ค์ด Ruby์์ Rust๋ก ์ค๊ณ ์๋ค๋ ์ ์ ๊ณ ๋ คํ๋ฉด Ruby์ ๋น๊ตํ์ฌ ์ด์ ๋ฒ์ ์ ์ฌ์ฉํด์๋ ์ ๋ฉ๋๋ค. ( ...
๋ ์คํ ๊ฐ๋ฅ์ฑ์ 1 ์ค๋ฅ๋งํผ ์ฆ๊ฐ์ํจ๋ค๋ ์ฃผ์ฅ์ ์ถ๊ฐ๋ก.)
Swift์์๋ ..<
๋ฅผ ์๋ฝํ์ง๋ง Rust์์๋ ..=
๋ฅผ ์๋ฝํ์ง ์์ ์ ์์ต๋๊น? ..=
๋ ๊ทธ๋ ๊ฒ ์ด์ํ์ง ์์ต๋๋ค.
ํจํด์์ ๋ฒ์ ๊ตฌ๋ฌธ์ ํ์ฅํ๋ ๊ฒ์ AFAIK์ ๋ง์ฐฌ๊ฐ์ง๋ก ์ฌ์ ํ ๋ฏธํด๊ฒฐ ๋ฌธ์ ์
๋๋ค.
ํ ๊ฐ์ง ์ด์ ๋ Enum::Variant(..)
๊ฐ ์ด๋ฏธ
์ ํจํ๊ณ Enum::Variant(RangeFull)
๊ฐ ์ค๋จ๋จ์ ์๋ฏธํ๋๋ก ๋ณ๊ฒฝํฉ๋๋ค.
2017๋ 3์ 16์ผ ๋ชฉ์์ผ ์คํ 3์ 77๋ถ์ Boscop [email protected]์์ ๋ค์๊ณผ ๊ฐ์ด ์ผ์ต๋๋ค.
์ด์ํ๊ฒ ๋ณด์ด๋ ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข์ต๋๋ค(๋ชจ๋ ์ธ์ด๋
๋ค๋ฅธ ์ฌ๋๋ค์ด ๊ฐ์ง๊ณ ์์ง ์์ ์ฐ์ฐ์(์: Swift์ ..<, F#์ ๋ชจ๋ ์ฐ์ฐ)
๋ฐ ์ค์นผ๋ผ). ์ด์จ๋ ์ฌ๋๋ค์ Rust ์ฑ ์ ์ฝ์ด์ผ ํ ๊ฒ์ ๋๋ค.
Ruby์์ Rust๋ก ์ค๋ ์ฌ๋๋ค์ด ๋ง๋ค๋ ์ ์ ๊ฐ์ํ ๋,
Ruby์ ๋น๊ตํ์ฌ ๊ฑฐ๊พธ๋ก๋์ด์๋ ์๋ฉ๋๋ค. (๋ ผ์ฆ์ ๋ง๋ถ์ฌ
๊ทธ๊ฒ์ ... off์ ๊ฐ๋ฅ์ฑ์ 1 ์ค๋ฅ๋งํผ ์ฆ๊ฐ์ํต๋๋ค.)
์ด๋ป๊ฒ Swift์์ ..<๋ฅผ ๋ฐ์๋ค์ด๊ณ Rust์์ ..=๋ฅผ ๋ฐ์๋ค์ด์ง ์์ ์ ์์ต๋๊น?โ
๋น์ ์ด ์ธ๊ธ๋์๊ธฐ ๋๋ฌธ์ ์ด๊ฒ์ ๋ฐ๋ ๊ฒ์ ๋๋ค.
์ด ์ด๋ฉ์ผ์ ์ง์ ๋ต์ฅํ๊ณ GitHub์์ ํ์ธํ์ธ์.
https://github.com/rust-lang/rust/issues/28237#issuecomment-287160485 ,
๋๋ ์ค๋ ๋ ์์๊ฑฐ
https://github.com/notifications/unsubscribe-auth/AAC3nz9ZNR2utl7LPTVvQPQ_Ma8sDBGuks5rmYhmgaJpZM4F4LbW
.
๊ทธ๋์. slice.get(10...30)
๊ฐ์ ๊ฒ์ ์
๋ ฅํ๊ณ ์ผ์ดํฌ๋ ๋จน๊ณ ์ถ์ด์.
๋ค๋ฅธ ๊ตฌ๋ฌธ๋ณด๋ค inclusive(0..10)
๋ฅผ ์ ํธํ๋ค๊ณ ํ์ ํ์ต๋๋ค.
slice.get(10...30)
๋ฅผ ์ฐ๊ณ ์ถ์ดํ์ง๋ง, slice.get(10...30)
์ธ์ง slice.get(10..30)
์ธ์ง ์ธ์ฌํ ์ฃผ์๋ฅผ ๊ธฐ์ธ์ด๊ณ ์ถ์ง ์์ต๋๋ค . ๊ตฌ๋ฌธ์ ๊ทผ์ ์ฑ์ด ์ง์ง ๋ฌธ์ ๋ผ๊ณ ์๊ฐํฉ๋๋ค...=
๊ฐ ๋ฏธํ์ ์ด๊ณ ์ง๊ด์ ์ด์ง ์๋ค๋ ๋ฐ ๋ชจ๋๊ฐ ๋์ํ ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค.(0..10).inclusive()
๋ ๊ฐ์ ๊ตฌ๋ฌธ์ด์ง๋ง ๋ ํธ๋ฆฌํฉ๋๋ค. ๊ธฐ์ ์ ์ผ๋ก inclusive
prelude๋ ์๋ง๋ ๋ ๊ตฌ๋ฌธ์ ๋ชจ๋ ์ง์ํ ๊ฒ์
๋๋ค.๋๋ ๋ค์๊ณผ ๊ฐ์ด ๋ณด์ผ ๊ฒ์ด๋ผ๊ณ ์๊ฐํ๋ค.
trait IntoInclusive {
type Inclusive;
fn inclusive(self) -> Self::Inclusive;
}
fn inclusive<T: IntoInclusive>(range: T) -> T::IntoInclusive {
range.inclusive()
}
๋๋ ๋ชจ๋๊ฐ ..=๊ฐ ๋ฏธํ์ ์ด๊ณ ์ง๊ด์ ์ด์ง ์๋ค๋ ๋ฐ ๋์ํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
์ข ์ง๋์น ์ผ๋ฐํ๋ผ๊ณ ์๊ฐํฉ๋๋ค. ..=
๋ inclusive()
์ ๊ฐ์ ๋ฐฉ๋ฒ๋ณด๋ค ๋ ๋ฏธํ์ ์ด๊ณ ์ง๊ด์ ์
๋๋ค.
(๋ํ, ์ฐ๋ฆฌ์ ํ์ค ์ผ๋ง๋ ๋ง์ ๋ชจ๋ฅด๋ ..=
ํ์ง ์์ ๊ฒ์ ๋ฌธ์ ์ฐพ์ ์) ์ ์ฌ ์์ (๋๋ ์์์ ์ธ ๋
ธ๋ ฅ์ด ๋ ์ ...
.)
.inclusive()
๋๋ฌด ์์ฃผ ๋ฐ์ ๋ญ๊ฐ ๋๋ฌด ๊น๋๋ค (๊ทธ ์ฃผ์, ๋๋ ๋ํ์ ๋ํ ์งง์ ํํ๊ฐ ์์ด์ผํ๋ค๊ณ ์๊ฐ .enumerate()
).
๊ทธ๋ฌ๋ .inclusive()
๊ฐ ์๋๋ผ๋ ํจ์๋ ๋ ๊ฐ๊ฐ ์๋๋ผ ํ๋๋ง ์์ด์ผ ํฉ๋๋ค.
๋ํ ํฌํจ ๋ฒ์ ๊ตฌ๋ฌธ์ด ์์ผ๋ฉด match
์์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
ํ์ง๋ง Scala ์ ๊ฐ์ด ์ผ๋ฐ์ ์ธ ๋ฐฉ์์ผ๋ก ์ถ์ถ๊ธฐ๋ฅผ ์ง์ ํ๋ ๋ฐฉ๋ฒ์ด ํ์ํ ์ ์์ต๋๋ค. ๋ชจ๋ ์ ํ์ด ์ผ์น์์ ์ฌ์ฉ๋ ์ ์์ผ๋ฏ๋ก ํด๋น ์ผ์น๋ ์์์ ์ผ๋ก unapply
๋ฉ์๋๋ฅผ ํธ์ถํฉ๋๋ค.
(๋ํ ์ฐ๋ฆฌ๋ ..=์ ๋ํ ํ์ค๊ฐ์ด ๊ทธ๋ ์ง ์์ ๊ฒ์ ๋ํ ๋ฌธ์ ๋ฅผ ์ฐพ์ผ๋ ค๋ ๋ฌด์์์ (๋๋ ์์์ ์ธ) ๋ ธ๋ ฅ์ผ ์ ์๋์ง ๋ชจ๋ฆ ๋๋ค....)
๋์๊ฒ์ ์๋ฌด๋. ์ด๊ฒ์ ์ผ์ข ์ ์ ์์ ๋ํ ๋น๋์ ๋๋ค.
๋ํ ํฌํจ ๋ฒ์ ๊ตฌ๋ฌธ์ด ์์ผ๋ฉด ์ผ์น์์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
ํฌํจ ๋ฒ์ ํจํด์ ์ด๋ฏธ match
์์ ์ง์๋ฉ๋๋ค. ์ฌ์ค ๊ทธ๊ฒ๋ค์ ์ค๋๋ ์ฐ๋ฆฌ๊ฐ ํจํด์ผ๋ก ์ง์ํ๋ ์ ์ผํ ์ข
๋ฅ์ ๋ฒ์์
๋๋ค.
@withoutboats ์, ํ์ง๋ง "ํฌํจ ๋ฒ์ ๊ตฌ๋ฌธ์ด ์์ผ๋ฉด ๋งค์น์์ ์ฌ์ฉํ ์ ์์ต๋๋ค"๋ผ๊ณ ๋งํ์ต๋๋ค. ์ง๊ธ์ ๊ตฌ๋ฌธ์ด ์์ง๋ง Scala์ ๊ฐ์ ์ถ์ถ๊ธฐ๊ฐ ์์ผ๋ฉด ๋งค์น์์ ์ฌ์ฉํ ์ ์๊ธฐ ๋๋ฌธ์ ๋ด ์ฃผ์ฅ์ .inclusive()
์ ๋ฐ๋ํ์ต๋๋ค. ์ด ๋ฌธ์ ์ ์์ ์ ํฌ๊ด์ ๋ฒ์ ๊ตฌ๋ฌธ์ด ์ผ์น์์๋ง ์๋ํ๊ณ ํ์ฌ ๊ตฌ๋ฌธ ๋์ ๊ตฌ๋ฌธ์ด ๋ฌด์์ธ์ง ๊ฒฐ์ ํ๋ ํน๋ณํ ๊ฒฝ์ฐ๊ฐ ๋์ด์๋ ์ ๋๋ค๋ ๊ฒ์
๋๋ค.
ํฌํจ: for i in 1..10! { }
Java/C/C++์์ 15๋
์ด์ ์ผํ ์ฌ๋์ผ๋ก์ ..
vs ...
๋ ๋งค์ฐ ํผ๋์ค๋ฝ๊ณ ์ค์๋ฅผ ์
๋ ฅํ๋ ๊ฒ๋ง์ผ๋ก๋ ๋ฒ๊ทธ๋ฅผ ์ผ์ผํฌ ์ ์์ต๋๋ค. ๋ํ Ruby์์ ๊ด๊ณ๋ ์ด๊ฒ์ ๋์ฑ ํผ๋์ค๋ฝ๊ฒ ๋ง๋ญ๋๋ค. ์ด๊ฒ์ด ..=
๋๋ ๋ค๋ฅธ ๋์์ด ๋ ๋์ ์ด์ ์
๋๋ค.
๋ด '๋ชจ์'๋ฅผ ๋ง์ ๋์ง๋ ๊ฒ:
for i in 1..10^
์ฌ๋ฐ๋ฅธ ๊ฐ์ด _up_ ๋๊น์ง ๊ฐ๋ค๋ ๊ฒ์ ์์งํ๋ ๋ชจ์/์บ๋ฟ.
@leebenson ๊ฐ์ธ์ ์ผ๋ก
for i in 1..^10
@retep998 ๋๋ ๋ณด๋ด๊ธฐ๋ฅผ
์ @ retep998 ๋๋ ๊ฐ์ด ๋น์ ์ ์ ์ ..^
ํจ์ฌ ๋๋ณด๋ค๋ ..=
; ๊ทธ๊ฒ์ ๊ทธ ์๋ฏธ๋ฅผ ํจ์ฌ ๋ ์ฐ์์ํค๋ ๊ฒ์ฒ๋ผ ๋ณด์ด๋ฉฐ, ์ฆ๊ฐ๋ ํ ๋น ์ฐ์ฐ์์ ์ด์ํ ๋ณํ(์ +=
๋ฐ *=
)์ฒ๋ผ ๋ณด์ด๋ ๊ฒ์ ๋ฐฉ์งํฉ๋๋ค. ์ฆ, ์ด๋ ์ชฝ์ด๋ ...
๋ณด๋ค ํจ์ฌ ๋ซ์ต๋๋ค.
..^
๋ค์ฒ์ง ์ ์์ต๋๋ค.
๊ฐ์ธ์ ์ธ ์์ค์์๋ ๋งค์ฐ ๋ชป์๊ฒผ์ต๋๋ค(๋ถ๋ถ์ ์ผ๋ก๋ ..
๊ฐ ๋ง์ ๊ธ๊ผด์์ ^
์ ์์ง์ผ๋ก ๋ถ๋ฆฌ๋์ด ์๊ธฐ ๋๋ฌธ์
๋๋ค).
UI/UX ์ ๋ฌธ๊ฐ๋ก์, ๋๋ ๊ทธ๊ฒ์ด ์์ ์ ์ด์ต์ ์ํด ๋๋ฌด ์๋ฆฌํ ์๋ผ๊ณ ์๊ฐํฉ๋๋ค.
๋๋ ๋ค๋ฅธ ์ธ์ด์์ ์์ ๋ณผ ๊ฒฝ์ฐ ..^
, ๋ชจ๋ ๋๋ ์๊ณ ์๋ค (๋๋ ๋ฒ์๋ก ์ธ์์กฐ์ฐจํ์ง ์์ ์ ์์ต๋๋ค 5..^15
์ ๋ํ ๋ช ๊ฐ์ง ์ด์ํ ๋ถ๋ถ ๊ณ์น ์ถ์ฝ ๋ ์ 15! - 4!
) ์ธ๊ฐ์ ์ปจํ
์คํธ์์ ์๊ฐํ๊ณ ์บ๋ฆญํฐ๊ฐ ์ฃผ๋ฅ ํ๋ก๊ทธ๋๋ฐ ์ปจํ
์คํธ์์ ๊ฐ๋ ์ ์ผํ ์ฐ๊ด์ฑ์ ์ง์์ด๊ธฐ ๋๋ฌธ์
๋๋ค.
(๋ง์ฝ ์ฐ๋ฆฌ๊ฐ ๋ฌธ๋งฅ์์ ์๊ฐํ์ง ์์๋ค๋ฉด, ...
๋ ์ฐ๋ฌธ ์ฐ๊ธฐ์ ๋ํ์์ "๋ด์ฉ ์๋ต"๊ณผ ๊ฐ์ ์๋ฏธ์ ์ ์ถํ์ฌ "์ฝ๋ฐฑ์ด ์ฌ๊ธฐ์ ์ฝ์
๋จ" ๋๋ "์ด๋ฒคํธ ๋ฐ์"๊ณผ ๊ฐ์ ๊ฒ์ ์๋ฏธํ ์ ์์ต๋๋ค. ๊ฐ์ฅ ์ฆ๊ฐ์ ์ธ ์๋ฅผ ๋ณด์ฌ์ค๋๋ค. ํ์ด๊ณผ ์ ์ฌํ์ฌ "๋๊น์ง ์ฌ๋ผ๊ฐ๋๋ค"๋ผ๋ ์๋ฏธ๋ฅผ ๋ถ์ฌํ๋ ๊ฒ์ ๊ทธ๊ฒ์ด ์๋ก์ด ์ฌ๋์ ๊ธฐ๋์ ์ํธ ์์ฉํ๋ ๋ฐฉ์์ ์์ด์ ์์ ์์์๋ฅผ ํตํด ๋ง์ ์ ํ๋ ๊ฒ๊ณผ ๊ฐ์ต๋๋ค.)
๋์กฐ์ ์ผ๋ก, =
๋ ํ ๋น์ ๋์๊ณผ ํ๋ฑ์ ๊ฐ๋
์ ๋ชจ๋ ์ธ๊ธํ ์ ๋ก๊ฐ ์์ผ๋ฉฐ ..=
๋ํ "์ด์ํ ์ง์ ๊ตฌ๋ฌธ"๊ณผ ๊ฐ์ ์คํด๊ฐ ์์ต๋๋ค. ์๋ํ๋ฉด " ํ ๋น ์ฐ์ฐ์์ ์ํด ์์ง ์ฒ๋ฆฌ๋์ง ์์ "๋์
+ ํ๋ฑ"์ "์ค๋ฅธ์ชฝ ์ซ์๋ก ๋๋๋ ์ผ๋ จ์ ์ซ์์ ๊ด๋ จ์ด ์๋ ๊ฒ"์
๋๋ค... ์ด๋ ๋ฒ์ ๊ตฌ๋ฌธ์ด ํ๋ ์ผ์ ๋ํ ๋ชจํธํ์ง๋ง ์ ์ ํ ์ ์์
๋๋ค.
๋ํ ..^
๊ฐ ์ปจํ
์คํธ์์ ์ฌ์ฉ๋๋ ๋ฒ์ ๊ตฌ๋ฌธ์ด๋ผ๋ ๊ฒ์ ์ธ์ํ๋๋ผ๋ ^
๊ฐ๋ฅ์ฑ์ ์ ์ธ ์ค์ํ ์ํฉ์์, 2..^8
๊ฐ๋ฐฉํ ๋ฒ์ ๋์์ ์์ํ๊ณ (์ ์ ๋ฅ๋ ฅ์ ์ด์ ๋จ๊ณ๋ฅผ ๊ณ ๋ คํ์ฌ, ์ฆ. ์คํ
ํ ์๊ธฐ 2..Inf^8
๋ 2..+8
๊ฐ "2์์ ๋ฌดํ๋๊น์ง 8๋จ๊ณ๋ก ๋ฐ๋ณต"์ ์ฝ์ด์
๋๋ค.)
์ฌ๋๋ค์ while
๋ฃจํ๋ฅผ ์์ฑํ ๋ <
(๋
์ ) ๋ <=
(ํฌํจ)์ ๊ด์ ์์ ์๊ฐํ๋ ๋ฐ ์ต์ํ๊ธฐ ๋๋ฌธ์ ..=
๊ทธ ๋ฌธ์ ๋ฅผ ํผํ ์ ์์ต๋๋ค. ๋ฐ C ์คํ์ผ for
๋ฃจํ.
@ssokolow ํฉ๋ฒ์ ๋ถ์.
๊ฐ์ธ์ ์ผ๋ก ..=
๋๋ ..^
๋ค์ ๊ฐ ์ ์์ต๋๋ค. ๋ ์ค ํ๋์ ๊ธฐํธ๋ ๋์๊ฒ ์๋ฏธ๊ฐ ์์ต๋๋ค. ์ฆ, ๊ฐ๊ฐ '์ต๋ ๋ฐ ๊ฐ์' ๋๋ ๋จ์ํ '์ต๋'์
๋๋ค. ๋ด ์๊ฐ์๋ ๋ ๋ค ๊ฐ์ ์๋ฏธ์
๋๋ค.
์ฐ๋ฆฌ ๋ชจ๋๋ ๋ค๋ฅธ ์ธ์ด์ ์ค์ผ๋ ์์ง/ํธ๊ฒฌ์ ์ญ์ฌ๋ฅผ ๊ฐ์ ธ์ค๊ธฐ ๋๋ฌธ์ ๋ชจ๋ ์ฌ๋์ ๋ง์กฑ์ํค๋ ๋ฌด์ธ๊ฐ๋ฅผ ์๊ฐํด ๋ด๊ธฐ ์ด๋ ค์ธ ๊ฒ์
๋๋ค. ์ฒ์์ ^
๊ธฐํธ๋ฅผ ์ถ๊ฐํ์ต๋๋ค. ์๋ฅผ ๋ค์ด, ์์ ์ฝ์
ํ๋ฉด '๊ณ๋จ'์ด๋ ์ง์๋ฅผ ๋ํ๋ด๋ ๋๋์ด ์๋ ๋ฐ๋ฉด ์ ๋ฏธ์ฌ๋ ๋ฒ์๋ฅผ ๋๋ฝํ์ง ์๊ณ ์ด๋ป๊ฒ๋ ๋ ์์ํ ๋๋์ผ๋ก ๋จ๊ฒผ๊ธฐ ๋๋ฌธ์
๋๋ค. ํ์ง๋ง ๊ทธ๊ฑด ๋๋ฟ์ด์ผ.
์ด์จ๋ ๋๋ ์ด๋ค ํํ์ ์๊ธฐ ํ๊ธฐ๋ฒ๊ณผ ์ค๋ฅธ์ชฝ ๊ฐ์ ์์์ ์ผ๋ก +1ํ๋ ํจ์ ํธ์ถ์ ์ ํธํฉ๋๋ค. ๋๋ ์ด๊ฒ์ด ํจ์ ํธ์ถ์ฒ๋ผ ๋๊ปด์ง๋ ๊ฒ์ ์์ํ๊ธฐ์๋ ๋๋ฌด ์ผ๋ฐ์ ์ธ ๊ตฌ๋ฌธ์ด๋ผ๋ ์ด์ ์๊ฒฌ์ ๋์ํฉ๋๋ค. ...
์ ๊ฒฝ์ฐ์ง ์๊ฒ ์ง =
/ ==
๋ฒ๊ทธ์ผ ๊ฒ์ด๊ณ ๋๊ตฐ๊ฐ์ ๋ฐ์ ์๊ฒ ๋ ๊ฒ์
๋๋ค...
๋ง์ ์ฌ๋๋ค์ด ์ ๊ทน์ ์ผ๋ก ์ซ์ดํ๋ ๊ฒ ๊ฐ์ต๋๋ค ..= ์๋ฌด๋ ๋ถ์ ์ ์ธ ๋ง์ ํ์ง ์์์ต๋๋ค
์ฝ .... ๊ทธ๋ฅ ์กฐ์ฉํ ๋ฌด์ํ์ต๋๋ค (๋ช ๊ฐ์ง ์์ง ์๊ฐ๋ฝ ์ ์ธ) I
๋๋ ๊ทธ๊ฒ์ ๋ค์ ์ ๊ธฐํ๊ณ ์ฌ๋๋ค์ด ๊ทธ๊ฒ์ ๊ณ ๋ คํ๊ณ ์ค ๊ฒ์ด๋ผ๊ณ ์๊ฐํ์ต๋๋ค.
๋ฐ๋ํ๋ ๊ฒฝ์ฐ ์ฌ์ฉํ์ง ์๋ ์ด์ .
์์์ด ๋ ๋ง๊ธฐ ๋๋ฌธ์ ์ธ๊ธํ๊ธฐ์กฐ์ฐจ ์ซ์ง๋ง .:
(์ ์ฝ๋ก ) ํฌํจ? ์ 3๊ฐ์ง๋ง ๋ฌธ์๋ 2๊ฐ์
๋๋ค.
๋ชจ์์ด ..
2017๋
3์ 18์ผ ํ ์์ผ ์ค์ 11์ 50๋ถ, Lee Benson ์๋ฆผ @github.com
์ผ๋ค:
@ssokolow https://github.com/ssokolow ํฉ๋ฒ ๋ถ์.
๊ฐ์ธ์ ์ผ๋ก ๋๋ ..= ๋๋ ..^ ์ค ํ๋๋ฅผ ๋ค์์ ์ป์ ์ ์์ต๋๋ค. ๋ ์ค ํ๋์ ์์ง
๋์๊ฒ ์๋ฏธ๊ฐ ์์ต๋๋ค. ์ฆ '์ต๋ ๋ฐ ๊ฐ์' ๋๋ ๋จ์ํ '์ต๋',
๊ฐ๊ธฐ. ๋ด ์๊ฐ์๋ ๋ ๋ค ๊ฐ์ ์๋ฏธ์ ๋๋ค.๋ชจ๋๊ฐ ๋ง์กฑํ ์ ์๋ ์ ํ์ ์ฐพ๊ธฐ๋ ํ๋ค๊ฒ ์ง๋ง,
์๋ํ๋ฉด ์ฐ๋ฆฌ๋ ๋ชจ๋ ๋ค๋ฅธ ์ธ์ด์์ ์ญ์ฌ๋ฅผ ๊ฐ์ ธ์ค๊ณ ๊ทธ๊ฒ๊ณผ ํจ๊ป ๋๋ฝํ์ง๊ธฐ ๋๋ฌธ์ ๋๋ค.
์์ง/ํธํฅ. ์ฒ์์ ์ซ์ ๋ค์ ^ ๊ธฐํธ๋ฅผ ์ถ๊ฐํ์ต๋๋ค.
์๋ฅผ ๋ค์ด, ์ด์ ์ ์ฝ์ ํ๋ ๊ฒ์ '๋จ๊ณ'๋ฅผ ๋ํ๋ด๋ ๋๋์ ๊ฐ์ก๊ธฐ ๋๋ฌธ์
๋๋ ์ง์, ์ ๋ฏธ์ฌ๋ ๋ฒ์๋ฅผ ์ค์ผ์ํค์ง ์๊ณ ์ด๋ป๊ฒ ๋ ๋ ์์ํ๊ฒ ๋จ๊ฒผ์ต๋๋ค.
๊ฐ์ . ํ์ง๋ง ๊ทธ๊ฑด ๋๋ฟ์ด์ผ.์ด์จ๋ , ๋๋ ์ด๋ค ํํ์ ์๊ธฐ ํ๊ธฐ๋ฒ์ ์ ํธํฉ๋๋ค.
์์์ ์ผ๋ก ์ค๋ฅธ์ชฝ ๊ฐ์ +1ํ๋ ํจ์ ํธ์ถ์ ๋๋ค. ๋๋ ์ด์ ์ ๋์ํ๋ค
์ด๊ฒ์ ๋๋ฌด ์ผ๋ฐ์ ์ธ ๊ตฌ๋ฌธ์ผ๋ก ๋ค์๊ณผ ๊ฐ์ ๊ฒ์ ์์ํ๊ธฐ์๋
ํจ์ ํธ์ถ์ฒ๋ผ ๋๊ปด์ง๋ค. ๋๋ ์๊ดํ์ง ์์ ๊ฒ์ ๋๋ค ...ํ์ง๋ง ๋น์ฐํฉ๋๋ค.
์๋ง๋ = / == ์ ์ท์ ๋ฒ๊ทธ๊ฐ ์๊ณ ๋๊ตฐ๊ฐ๋ฅผ ์๊ฒ ๋ ๊ฒ์ ๋๋ค.
๋ฐ...โ
๋น์ ์ด ๋๊ธ์ ๋ฌ์๊ธฐ ๋๋ฌธ์ ์ด๊ฒ์ ๋ฐ๋ ๊ฒ์ ๋๋ค.
์ด ์ด๋ฉ์ผ์ ์ง์ ๋ต์ฅํ๊ณ GitHub์์ ํ์ธํ์ธ์.
https://github.com/rust-lang/rust/issues/28237#issuecomment-287566556 ,
๋๋ ์ค๋ ๋ ์์๊ฑฐ
https://github.com/notifications/unsubscribe-auth/AIhJ6jWgPwndKaQvVjULlV_OoC6WDO0Cks5rnCeLgaJpZM4F4LbW
.
์ค, ์ด๊ฒ์ ์์ง ์์ ๊ฑฐ ํ์ทจ ๋จ๊ณ์ ์์ต๋๊น? ๐
๋ค์ ์ฝ์ด๋ณด๋ @nikomatsakis ๊ฐ ..=
๋ง๋ค๊ณ ํ๋ฃจ๋ผ๊ณ ๋ถ๋ฅด๋ ๋ฐ ๋์ํ๋ ๊ฒ ๊ฐ์ต๋๋ค . ..
๋ ...
์ ์ ์ฌ์ฑ์ ๋๋ฌด ๋ฏธ๋ฌํ๋ฉฐ ๊ฐ๋ณ ์ ๋ค๋ฆญ(https://github.com/)์ ๋ชจํธ์ฑ ์์ด ...
ํ ํฐ์ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข์ต๋๋ค. Rust-lang/rfcs/pull/1935), ์ฌ๊ธฐ์ ๋ ์ฌ์ด์ ํผ๋์ ์ค์ฌ์ผ ํ๋ ๋งค์ฐ ๋๋ ทํ ๋ชฉ์ ์ ์ํํฉ๋๋ค.
๋ชจ๋ ๋ฐ๊ฐ๋ฐฉํ ๋ณํ์ ๋ํด ๋ณด๋ค ์ผ๋ฐํ๋ ๊ตฌ๋ฌธ์ ๋ํ ์๊ตฌ๊ฐ ์ฌ์ ํ ์กด์ฌํ๋์ง ํ์คํ์ง ์์ง๋ง ..
๋ฐ ..=
์ด์ธ์ ์ธ์ด ๊ตฌ๋ฌธ์ ์ ๊ณตํ๋ ค๋ ๋
ธ๋ ฅ์ ๊ฐ์น๊ฐ ์๋ค๊ณ ์๊ฐํฉ๋๋ค. .
๋ ๋ง์ ์์ ๋๋ฌธ์ ์ธ๊ธํ๊ธฐ์กฐ์ฐจ ์ซ์ง๋ง ํฌ๊ด์ ์ธ ๊ฒฝ์ฐ .:(์ ์ฝ๋ก )์ ์ด๋ป์ต๋๊น?
@ssokolow ๊ฐ UI/ ๋ฒ ๊ฐ์กฐํ ๊ฒ
๋๋ ๊ฐ์ธ์ ์ผ๋ก ์ธ ๋ฒ์งธ ์ ์ด ์๋ค๋ ๊ฒ์ ๋ํด _zero_ ๋ฐ๋ํ์ง๋ง, ๊ทธ๊ฒ์ด ๊ฒฐ๊ตญ ์ผ๋ถ ์ฌ๋๋ค์ ๊ฑธ๋ ค ๋์ด์ง๊ฒ ํ ๊ฒ์ด๋ผ๋ ์ฌ์ค์ ์๊ณ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ค๋ช ํ๊ธฐ๊ฐ ๋๋ฌด ์ฝ๊ธฐ ๋๋ฌธ์ ์๋ฆฌํ ํด๊ฒฐ ๋ฐฉ๋ฒ์ ์ค๊ณํ๊ธฐ ์ํด ์ธ์ด์ ์ฑ ์์ด ์์ด์ผ ํ๋์ง ์ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค. '2๊ฐ์ ์ ์ ์ ์ธ๋ฉ๋๋ค. ์ 3๊ฐ ํฌํจ' ์ ๋ง _๊ทธ_ ํ์ /๋๋ฒ๊ทธ๊ฐ ์ด๋ ต์ต๋๊น?
์ด๋ค ๊ฒฝ์ฐ์ด๋ - ๋๊ฐ ์ต์ข ๊ฒฐ์ ์ ๋ด๋ฆฌ๊ณ ์ด๋ฅผ ๋ง๋ฌด๋ฆฌ ์ง๊ธฐ ์ํ ๋ค์ ๋จ๊ณ๋ ๋ฌด์์ ๋๊น? 18๊ฐ์ ๋์ ์ธ ๋ฒ์งธ ์บ๋ฆญํฐ์ ๋ํด ๋ ผ์ํ๋ ๊ฒ์ ์๋ง๋ ํ ์์ ์์ _๋_ ๋ฐ์ดํฌ์๋ฉ ์ ๋๋ค ๐
๋์ํฉ๋๋ค. ^๋ ๋จ๊ณ์ฒ๋ผ ๋ณด์
๋๋ค.
IMO ์๋ก ๋ถ์ผ์น op=
์ฐ๋ฆฌ๊ฐ ์ด์ ๊น์ง์์ ๊ฒ์ด๋ผ๊ณ ๋ฐฉ๋ฒ์ด ์๊ธฐ ๋๋ฌธ์ ์ด์์๋ ์๋ฌด๋ฐ ๋ฌธ์ ๊ฐ ์์ต๋๋ค a ..= b
์ ์๋ฏธ์์ a = a .. b
๋ถํฐ ..
์๋ค๊ฐ ์ฐ์ฐ์๊ฐ ์๋๋ผ Range๋ฅผ ๊ตฌ์ฑํ๊ธฐ ์ํ ๊ตฌ๋ฌธ์ ์คํ(๊ทธ๋ฆฌ๊ณ ์ฐ๋ฆฌ๋ ๋ชจ๋ ์ฐ์ฐ์ด op=
๋ฐ ..
ํ์์ ์๋์ผ๋ก ๊ฐ์ ธ์ค๋ ์ผ๋ฐ์ ์ธ ์ฐ์ฐ ์ค๋ฒ๋ก๋ฉ ์ฒด๊ณ๊ฐ ์์ต๋๋ค).
๋๋ ..=
์ด ๋ฌธ์๋ฅผ ๋ณด์ง ์๊ณ ๋ช
ํํ๋ค๊ณ ๋งํ๋ ๊ฒ์ด ์๋๋๋ค. ๊ทธ๋ฌ๋ ์ผ๋จ ์ฌ๋๋ค์ด ๋ฌธ์๋ฅผ ๋ณด๋ฉด ์๊ธฐํ๊ธฐ ๋ ์ฝ๊ณ ์ด์จ๋ ๋ฌธ์๋ฅผ ๋ด์ผ ํ ๊ฒ์
๋๋ค.
@nikomatsakis ์ ์ง๋ช ์ ๊ฐ์ํ ๋ ๋ค์ ์ฃผ lang-team ํ์์์ ์ด์ ๋ํด ๋ ผ์ํ๊ณ ๊ทธ ์์ ์์ ์ ํ๋ฅผ ๊ฑธ ๊ฒ ๊ฐ์ต๋๋ค. ๋๋ ์ด๊ฒ์ด ์ ํ๋ฅผ ๊ฑธ๊ณ ๋ฐ์ดํฌ ์ ฐ๋ฉ์ ๋๋ด๊ธฐ ์ํด ๋ญ ํ์ด ํ์ํ๋ค๋ ๋ฐ ๋์ํฉ๋๋ค.
๋๋ ๋ํ
..^
๊ฐ ์ปจํ ์คํธ์์ ์ฌ์ฉ๋๋ ๋ฒ์ ๊ตฌ๋ฌธ์ด๋ผ๋ ๊ฒ์ ์ธ์ํ๋๋ผ๋ ์ฒ์์๋ ๊ทธ๊ฒ์ด ํฌ๊ด์ ์ธ์ง ๋ฐฐํ์ ์ธ์ง ์ง๊ด์ ์ผ๋ก ์ ์ ์๋ค๋ ๊ฒ์ ๊ฑฑ์ ํฉ๋๋ค.
๋์. ์ฌ์ค, ๋๋ ์ด๋ฏธ Perl 6์์ ์ด ๊ตฌ๋ฌธ์ ๋ณด์์ต๋๋ค. ์ฌ๊ธฐ์ ์ ์์ ๋ฐ๋๋ ๋ฐฐํ์ ์ด๋ผ๋ ์๋ฏธ์ ๋๋ค.
@solson ๊ทธ๊ฒ์ ๋ํ ๋งค์ฐ ๊ฐ๋ ฅํ ์ฃผ์ฅ์ ๋๋ค.
Perl์ ..๊ฐ ํฌ๊ด์ ์ธ ์๋ฏธ๋ฅผ ๊ฐ๋ ์์ ํ ์ผ๋ฐ์ ์ธ ๊ตฌ๋ฌธ์ ๊ฐ์ง๊ณ ์๋ ๊ฒ ๊ฐ์ต๋๋ค(๋ ๋ค
์ธก๋ฉด) ๋ฐ ์์ชฝ์ ^๋ ํด๋น ๋ฐ์ธ๋ฉ์ ๋ฐฐํ์ ์ผ๋ก ๋ง๋ญ๋๋ค.
2017๋
3์ 18์ผ ํ ์์ผ ์คํ 6์ 51๋ถ, Josh Triplett [email protected]
์ผ๋ค:
@solson https://github.com/solson ๋งค์ฐ ์ค๋๋ ฅ ์๋ ์ฃผ์ฅ์ ๋๋ค.
๋ฐ๋ํฉ๋๋ค.โ
๋น์ ์ด ์ธ๊ธ๋์๊ธฐ ๋๋ฌธ์ ์ด๊ฒ์ ๋ฐ๋ ๊ฒ์ ๋๋ค.
์ด ์ด๋ฉ์ผ์ ์ง์ ๋ต์ฅํ๊ณ GitHub์์ ํ์ธํ์ธ์.
https://github.com/rust-lang/rust/issues/28237#issuecomment-287580739 ,
๋๋ ์ค๋ ๋ ์์๊ฑฐ
https://github.com/notifications/unsubscribe-auth/AAC3n7Fnn1_t9BkYOhfS-7oCaGlVff2aks5rnF_5gaJpZM4F4LbW
.
์ฃ์กํ์ง๋ง @rust-lang/lang ํ์์์ ์ด ๋ฌธ์ ๋ฅผ ๋ ผ์ํ์ ๋ ํฉ์์ ๋๋ฌํ์ง ๋ชปํ์ต๋๋ค. @withoutboats ๋ ํนํ ์ผ๋ถ ์ฌ๊ฐํ ์์ฝ์ด ์์ด ์ค์ค๋ก ๋ฐฉ์กํ ์ ์๊ธฐ๋ฅผ ๋ฐ๋๋๋ค.
์ฐ๋ฆฌ๊ฐ ๋ ผ์ํ ๋ช ๊ฐ์ง ์ฃผ์ ์ฌํญ:
x ..= y
์ฑํํ๋ฉด ๊ธฐ์กด x...y
ํจํด ๊ตฌ๋ฌธ์ ์ฌ์ฉํ์ง ์์์ ์๋ฏธํฉ๋๋ค.(x..y).inclusive()
๋๋ ์ด์ ์ ์ฌํ ๊ฒ์ ์ฐ๋ ๊ฒ์
๋๋ค. ๊ทธ๋ฌ๋ ํจํด์์๋ ์๋ํ์ง ์์ต๋๋ค( x...y
). ์ด๊ฒ์ ๋ค์๊ณผ ๊ฐ์ ๋ช ๊ฐ์ง ์ง๋ฌธ์ ์ ๊ธฐํฉ๋๋ค.match 3 { 1..3 => false, .. }
์ด๋ฒ ํ ๋ก ์ ํตํด ๋์จ ํ ๊ฐ์ง๋ ์์ถฉ ๋๋
์ด ๊ธ์ ์์ํ๊ธฐ ์ ์ ๋ํ์ ๋งค ์๊ฐ๋ง๋ค ์ฐ๋ฆฌ ๋ชจ๋๊ฐ ์ค์ ๋ก ๊ฐ์ ๊ฐ๋ ์ ๋ํด ์ด์ผ๊ธฐํ๊ณ ์๋ค๋ ํ์ ์ด ๋ค์ง ์์๋ค๊ณ ๋งํ๊ณ ์ถ์ต๋๋ค. ์๋ฅผ ๋ค์ด, Niko๋ "๋ฐฐํ์ ๋ฒ์ ํจํด์ ๋น์ ์ด ์ํ๊ธฐ ์ ๊น์ง๋ ๊ด๋ จ์ด ์์ด ๋ณด์ธ๋ค"๊ณ ๋งํ์ง๋ง, ๋๋ ๊ทธ ๋น์ Niko์ Josh๊ฐ ํฌ๊ด์ ์ธ ๋ฒ์ ํํ์ ๋ํด ์ด์ผ๊ธฐํ๊ณ ์์๋ค๊ณ ์๊ฐํ์ต๋๋ค.
(๊ทธ๋ฆฌ๊ณ ๋๋ Niko์ ๊ฒ์๋ฌผ์ ๋ง์ง๋ง ๋ถ๋ถ์์ ํ์ฌ "๋ฐฐํ์ ๋ฒ์ ํํ์"์ด๋ผ๊ณ ์ฝ๋ ์ฒซ ๋ฒ์งธ ๊ธ๋จธ๋ฆฌ ๊ธฐํธ๊ฐ "ํฌํจ ๋ฒ์ ํํ์"์ด๋ผ๊ณ ๋งํด์ผ ํ๋ค๊ณ ์๊ฐํฉ๋๋ค.)
๋ฒ์ ํํ์ ์ ๋ณด:
...
๋๋ ..=
ํฌํจ ๋ฒ์ ํํ์์ ๋ํ ๊ตฌ๋ฌธ์ ๋์
ํด์๋ ์ ๋ฉ๋๋ค.inclusive(0..10)
(์ด๋ฆ์ ์์ ๊ฑฐ๋ฅผ ํ ์ ์์)๋ก ์์ฑํฉ๋๋ค.๋ฒ์ ํจํด ์ ๋ณด:
๋ค์ ๋งํด์, ์ฐ๋ฆฌ๊ฐ ํด์ผ ํ๋ ์ ์ผํ ๋ฌผ์ง์ ๋ณ๊ฒฝ์ libs ๋ณ๊ฒฝ์ ๋๋ค: ์๊ณก์ ํจ์๋ฅผ ์ถ๊ฐํ์ญ์์ค.
๋ด ์ฃผ์ฅ์ ๊ธฐ๋ณธ์ ํฌ๊ด์ ๋ฒ์ ๊ฐ์ ๋ฐ๋ณตํ๋ ๊ฒ์ด ์ผ๋ฐ์ ์ด์ง ์์ ์๊ตฌ ์ฌํญ์ด๋ผ๋ ์ฌ์ค์ ๋๋ค. RFC๊ฐ 18๊ฐ์ ์ ์ ๋ฐ์๋ค์ฌ์ก์์๋ ๋ถ๊ตฌํ๊ณ ์ฐ๋ฆฌ๋ ์ฌ์ ํ ์ด ๊ธฐ๋ฅ์ ์์ ํํ์ง ๋ชปํ๋ค๋ ์ฌ์ค์์ ์ด๊ฒ์ด ์ ์ฆ๋์๋ค๊ณ ์๊ฐํฉ๋๋ค. ๊ตฌํ ๋ฌธ์ ๋๋ฌธ์ด ์๋๋ผ ์ฐ๋ฆฌ๊ฐ ๊ตํ์ ๋ง์กฑํ์ง ์๊ธฐ ๋๋ฌธ์ ๋๋ค.
ํฌ๊ด์ ์ธ ๋ฒ์ ํํ์์ ์ด๋ฅผ ์์ฑํ๋ ๊ฐ๋จํ ๋ฐฉ๋ฒ์ ์ง์ํด์ผ ํ ๋งํผ ์ถฉ๋ถํ ์์ฃผ ํ์ํ์ง๋ง ์ง๊ธ๊น์ง ๋ ผ์ํ ๊ตฌ๋ฌธ์ ๋จ์ ์ ๊ทน๋ณตํ ๋งํผ ์์ฃผ๋ ์๋๋ผ๊ณ ์๊ฐํฉ๋๋ค.
ํนํ ๋ชจ๋ ๊ตฌ๋ฌธ ์๋ฃจ์
์ด ๊ณต์ ํ๋ ๋จ์ ์ ์ด๋ ๊ฒ๋ ์ค์ ๋ก ์์ฒด ๋ฌธ์ํ๋์ง ์๋๋ค๋ ๊ฒ์
๋๋ค. 0...10
๋๋ 0..=10
๊ฐ ํฌํจ ๋ฒ์ ํํ์์ด๋ผ๋ ๊ฒ์ ๋น๊ต์ ๋ช
ํํ์ง ์์ต๋๋ค. ๋น๊ต์ ๋๋ฌผ๊ฒ ๋ฐ์ํ๊ธฐ ๋๋ฌธ์ ์ฒ์ ์ ํ๋ ์ฌ์ฉ์์๊ฒ๋ ๊ฑธ๋ฆผ๋์ด ๋ ๊ฒ์
๋๋ค.
์ฆ, ์ฌ์ฉ์๊ฐ "์ ์์ ์ธ" ..
๋ฒ์๋ฅผ ๋ค๋ฃจ์ง ์๋๋ค๋ ์ฌ์ค์ ์์์ฐจ๋ฆฌ๊ธฐ๋ผ๋ ํฉ๋๋ค. ๋ฌผ๋ก ์ด๊ฒ์ ...
์ ํฐ ๋ฌธ์ ์ด์ง๋ง ..=
๊ฐ ๋ฌธ์ ๋ฅผ ์์ ํ ์ ๊ฑฐ ํ์ง๋ ์์ต๋๋ค. ์ฝ๋๋ฅผ ํ์ด๋ณผ ๋ ํ๋์ =
๋ฌธ์(๋๋ ^
๋๋ :
๋๋ ๊ธฐํ)๋ฅผ ๋์น๊ธฐ ์ฝ์ต๋๋ค. ์ถ๊ฐ .
๋งํผ ์ฝ์ง๋ ์์ง๋ง ์ถฉ๋ถํ ๋์ ๋๋์ง ํ์ ํ์ง ๋ชปํฉ๋๋ค.
๋๋ ์ค์ ๋ก ...
์ ..=
์ฌ์ด์ "๋์ ๋๋ ๋ ๋ช
ํ์ฑ" ํธ๋ ์ด๋ ์คํ๊ฐ ์๋ค๊ณ ์๊ฐํฉ๋๋ค. ๋๋ ๊ทธ๊ฒ์ ๋ ๋ถ๋ช
์ด๋ป๊ฒ ์๊ฐ ...
๋ณด๋ค (๋น์ ์ด ๋ ๊ตฌ๋ฌธ์ ๋ฐ๋์ ์๋ฏธ๋ฅผ ๊ฐ์ง๊ณ ๋ฃจ๋น์์ ์ค๋ ๊ฒฝ์ฐ๊ฐ ์๋๋ผ๋ฉด) ์๋จ์ ..=
,ํ์ง๋ง ํ์คํ ๋ ๋์ ๋๋.
๊ทธ๋ฌ๋ inclusive(0..10)
์ ๊ฐ์ ์๊ณก ํจ์๋ ์ฐ๋ฆฌ๊ฐ ๋
ผ์ํ ์ด๋ค ๊ตฌ๋ฌธ๋ณด๋ค ๋ ๋ช
ํํ๊ณ ๋์ ์ ๋๋ ๊ฒ ๊ฐ์ต๋๋ค. ์, ์
๋ ฅํ ๋ฌธ์๊ฐ ๋ ๋ง์ง๋ง ํด๋น ์์ฑ์ ๋จ์ ์ ์ฌ์ฉ ๋น๋์ ๊ด๋ จ์ด ์์ต๋๋ค.
๋ํ ๊ตฌ๋ฌธ ๋ถ์ ๋ฐ ํ ํฐํ ๋ฌธ์ ๋ฅผ ํผํ๊ณ (0..10).filter
๋ฑ์ ์์ฑํด์ผ ํ๋ (๋งค์ฐ ์ฑ๊ฐ์ ) ๋ฒ์ ๋ ๋ฉ์๋ ์ฐ์ ์์ ๋ฌธ์ ๊ฐ ์๋ ์ฌ์ฉ์๋ฅผ ๋์ต๋๋ค.
..
์ถ๊ฐํ๋ฉด ์ ๋๋ค๊ณ ์๊ฐํ๋ ์ฃผ๋ ์ด์ ๋ ์ฌ๋ผ์ด์ค ํจํด ์ฃผ๋ณ์ ๋ชจํธ์ฑ์ด ๋ฐ์ํ๊ธฐ ๋๋ฌธ์
๋๋ค. ์ด๋ ์ ์ฉํ๋ค๊ณ ์๊ฐํฉ๋๋ค. ๋๋ ๊ทธ๊ฒ์ ํ์ง ์์๋ ๊ทธ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ณ ์ถ๋ค.
๋ ๋ฒ์งธ ์ด์ ๋ ๊ทธ๋ค์ด ๊ฝค ๋์ ์คํ์ผ์ด๋ผ๊ณ ์๊ฐํ๊ธฐ ๋๋ฌธ์ ๋๋ค(๋ค๋ฅธ ์ฌ๋๋ค์ ๋์ํ์ง ์๋๋ค๋ ๊ฒ์ ์๋๋ค). ์๋ฅผ ๋ค์ด:
if let 1..10 = x { .. }
10
๊ฐ ํฌํจ๋ ํจํด๊ณผ ์ผ์นํ์ง ์๊ธฐ ๋๋ฌธ์ ์ด๊ฒ์ด ํผ๋์ค๋ฝ๋ค๊ณ ์๊ฐํฉ๋๋ค. Niko๋ ์ด๊ฒ์ด 10
์ฐ์ถํ์ง ์๋ ๋ฐฐํ์ ๋ฒ์ ํํ์๊ณผ ์ค์ ๋ก ๋ค๋ฅด์ง ์๋ค๊ณ ์ธ๊ธํ์ง๋ง, ์ ๋ ์ฐ๋ฆฌ๊ฐ ๋ฐฐํ์ ๋ฒ์. Rust์ ๋ค์ด์ค๋ฉด์ ์ ๋ ๋ฐ๋ณต ๋ฐ ์ฌ๋ผ์ด์ฑ ๋ฒ์๊ฐ ๋ฐฐํ์ ์ผ ๊ฒ์ด๋ผ๊ณ ์์ํ์ง๋ง ํจํด์ ๋ํด์๋ ๊ทธ๋ฐ ๊ธฐ๋๋ฅผ ํ์ง ์์์ต๋๋ค.
๋ํ ํํ์์ ..
/ ...
๊ฐ ๊ฐ์ง๊ณ ์๋ "off-by-one" ๋ฌธ์ ๊ฐ ์์ต๋๋ค.
Niko๊ฐ ๋ค์๊ณผ ๊ฐ์ ๊ธ์ ์ฐ๊ณ ์ถ๋ค๊ณ ์ธ๊ธํ ๊ฒ์ผ๋ก ์๊ณ ์์ต๋๋ค.
match x {
0..10 => { ... }
10..20 => { ... }
}
๊ทธ๋ฌ๋ ๋๋ ์ ๋ง๋ก ๊ฐ๋ ฅํ๊ฒ ๋ค์์๋ณด๊ณ ์ถ์ต๋๋ค.
match x {
0...9 => { ... }
10...19 => { .. }
}
์ด์จ๋ , ๋๋ Niko๊ฐ ๋๋๋ก ์ด๊ฒ์ด "์ ๋์ ์ผ๋ก ํ์ํ๋ค"๊ณ ์๊ฐํ๋ค๋ ์๋ฏธ์ ๋๋์ต๋๋ค. ๊ทธ๋์ ๋ ๋ง์ ๋ฐ๋ก ์ ๋ฃ๊ณ ์ถ์ต๋๋ค. ๊ทธ๊ฒ๋ค์ constexpr์ด์ด์ผ ํ๊ธฐ ๋๋ฌธ์ ๋์๊ฒ '์ ๋์ ์ผ๋ก ํ์ํ' ๊ฒ๋ณด๋ค '์์ผ๋ฉด ์ข์ ๊ฒ'์ ํจ์ฌ ๋ ๊ฐ๊น์ต๋๋ค.
๋๋ ํฌ๊ด์ ์ธ ๋ฒ์ ํํ๋ณด๋ค ๋ ์ ์ ์ธ ๋ฒ์ ํจํด์ ํ๋ค๋ฆฌ๋ ๊ฒ์ด ํ์คํ ๋ ์ฝ๋ค๊ณ ๋๋๋๋ค.
Niko๋ ์ผ๊ด์ฑ ๋๋ฌธ์ ํํ์๊ณผ ํจํด ๋ชจ๋์์ ..
๋ฐ ...
๋ฅผ ๋ชจ๋ ๊ฐ๋ ๊ฒ์ด ์ค์ํ๋ค๊ณ ์ธ๊ธํ์ต๋๋ค. ๋๋ ๊ธฐ๋ณธ์ ์ผ๋ก ์ด ์ฃผ์ฅ์ ์ ํ ๋์ํ์ง ์์ต๋๋ค. ๋ฒ์๋ฅผ ๋ฐ๋ณตํ๊ณ ๋ฒ์๋ฅผ ์ผ์น์ํค๋ ๊ฒ์ ์ค์ ๋ก ์ ์ฌํ ์์
์ด ์๋๋ฉฐ ์ฒ๋ฆฌ ๋ฐฉ๋ฒ์ ์ฐจ์ด๊ฐ ์์์ ์ดํดํฉ๋๋ค.
์ค์ ๋ก ๊ตฌํ ์ฐ๊ฒฐ์กฐ์ฐจ ์์ต๋๋ค. 1..10
๋ Range ๊ฐ์ ์์ฑํ๋ ๋ฐ๋ฉด 1...10
๋ ์ ์ ๊ฐ๊ณผ ์ผ์นํฉ๋๋ค. ๋๋ถ๋ถ์ ๋์นญ ํํ์/ํจํด ๊ตฌ๋ฌธ์ด ํ๋ ๋ฐฉ์์ผ๋ก ๊ตฌ์กฐํ/ํด์ฒดํ ์ฐ๊ฒฐ์ด ์๋ ๊ฒ๊ณผ ๋ค๋ฆ
๋๋ค.
์ ์ฌ์ฑ์ ๊ฐ์กฐํ๋ "๋ฒ์ ํจํด" ๐ค๋ณด๋ค ํจํด์ "๋๋ฉ์ธ ํจํด"์ด๋ผ๊ณ ๋ถ๋ฅด๋ ๊ฒ์ด ๊ธฐ์ ์ ์ผ๋ก ๋ ์ ํํด ๋ณด์ ๋๋ค.
@withoutboats
์๋ฅผ ๋ค์ด, Niko๋ "๋ฐฐํ์ ๋ฒ์ ํจํด์ ๋น์ ์ด ์ํ๊ธฐ ์ ๊น์ง๋ ๊ด๋ จ์ด ์์ด ๋ณด์ธ๋ค"๊ณ ๋งํ์ง๋ง, ๋๋ ๊ทธ ๋น์ Niko์ Josh๊ฐ ํฌ๊ด์ ์ธ ๋ฒ์ ํํ์ ๋ํด ์ด์ผ๊ธฐํ๊ณ ์์๋ค๊ณ ์๊ฐํ์ต๋๋ค.
์ ์
์ฅ์์๋ ๋ค์ํ ๊ฒฝ์ฐ์ ํ์ํ ๋ฐฐํ์ ๋ฒ์์ ํฌ๊ด์ ๋ฒ์๋ฅผ ๋ชจ๋ ์ฐพ์์ต๋๋ค(์์ ์ ์ธ Rust์์ ์์
ํ๊ธฐ ์ํด ๋ ๊ฒฝ์ฐ ๋ชจ๋์ ๋ํด ๋ฐฐํ์ ๋ฒ์๋ฅผ ์ฌ์ฉํ์ง๋ง ์๋จ์ +1
๋ฅผ ์ฌ์ฉํ์ฌ ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํด์ผ ํ์ต๋๋ค. ๊ฒฝ๊ณ). ํจํด๊ณผ ํํ ๋ชจ๋์ ์ฌ์ฉํ ์ ์๋๋ก ํ๊ณ ์ถ์ต๋๋ค.
์ฆ, ๊ฐ์ธ์ ์ผ๋ก ํฌํจ ๋ฒ์์ ๋ํด ํจ์๋ฅผ ์ฌ์ฉํ๋ ๋ฐ ๋ฐ๋ํ์ง ์์ต๋๋ค. ์์ธ ๋ ํฌํจ ๋ฒ์์ ํจํด ์ผ๋ก ์์ฑํ๋ ๋ฐฉ๋ฒ์ ์ํ๋ค๋ ์ ๊ณผ ์ด ๋ ๊ตฌ๋ฌธ์ด ํผ๋๋ ์ ๋๋ก ์ ์ฌํด ๋ณด์ด์ง ์๊ธฐ๋ฅผ ๋ฐ๋๋๋ค. ..
๋ฐ ...
์ฒ๋ผ. ๊ทธ๋ฆฌ๊ณ ์ด๋ฌํ ๋ฒ์๋ฅผ ํจํด์ผ๋ก ์์ฑํ๋ ๊ตฌ๋ฌธ์ด ์ฃผ์ด์ง๋ฉด ํํ์์์ ์ด๋ฌํ ๋ฒ์์ ๋ํด ๋ค๋ฅธ ๊ตฌ๋ฌธ์ ๊ฐ๋ ๊ฒ์ด ์ด์น์ ๋ง๋์ง ๋ชจ๋ฅด๊ฒ ์ต๋๋ค.
ํนํ ๋ชจ๋ ๊ตฌ๋ฌธ ์๋ฃจ์ ์ด ๊ณต์ ํ๋ ๋จ์ ์ ์ด๋ ๊ฒ๋ ์ค์ ๋ก ์์ฒด ๋ฌธ์ํ๋์ง ์๋๋ค๋ ๊ฒ์ ๋๋ค. 0...10 ๋๋ 0..=10์ด ํฌํจ ๋ฒ์ ํํ์์ด๋ผ๋ ๊ฒ์ ๋น๊ต์ ๋ถ๋ช ํ์ง ์์ต๋๋ค. ๋น๊ต์ ๋๋ฌผ๊ฒ ๋ฐ์ํ๊ธฐ ๋๋ฌธ์ ์ฒ์ ์ ํ๋ ์ฌ์ฉ์์๊ฒ๋ ๊ฑธ๋ฆผ๋์ด ๋ ๊ฒ์ ๋๋ค.
๋๋ ์ด๊ฒ์ ๋์ํฉ๋๋ค. ์ด๊ฒ์ ๋ ์ปดํฉํธํ ๊ตฌ๋ฌธ์ ๋ํด ์ด์๊ฐ ์์ ์ ๋๋ก ์ถฉ๋ถํ ๋๋ฌผ๊ฒ ๋ํ๋ฉ๋๋ค. ๊ทธ๋ฌ๋ ํํ์๊ณผ ํจํด ๋ชจ๋์์ ํฌ๊ด์ ์ด๊ณ ๋ฐฐํ์ ์ธ ๋ฒ์๋ฅผ ์์ฑ ํ๋ ๋ฉ์ปค๋์ฆ์ ๊ฐ๊ณ ์ถ์ต๋๋ค.
์๋ฅผ ๋ค์ด ํฌ๊ด์ ์ธ ๋ฒ์ ํจํด์ ์์ฑํ๋ ๋ฐ ๋งคํฌ๋ก ๋๋ ์ด์ ์ ์ฌํ ๊ฒ์ด ํ์ํ ๊ฒฝ์ฐ์๋ ์๊ดํ์ง ์์ต๋๋ค.
@joshtriplett ๋ค์๊ณผ ๊ฐ์ด ๋งํ ๋ ์ ๋ง ๋ช ํํ๊ฒ ํ๊ณ ์ถ์ ๋ถ๋ถ์ ๋๋ค.
๋๋ ๋ค์ํ ์๊ฐ์ ํ์ํ ๋ฐฐํ์ ๋ฒ์์ ํฌ๊ด์ ๋ฒ์๋ฅผ ๋ชจ๋ ๋ฐ๊ฒฌํ์ต๋๋ค(์์ ์ ์ธ Rust์์ ์์ ํ๊ธฐ ์ํด ๋ ๊ฒฝ์ฐ ๋ชจ๋์ ๋ํด ๋ฐฐํ์ ๋ฒ์๋ฅผ ์ฌ์ฉํ์ง๋ง ์ํ์ ์์ +1๋ก ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํด์ผ ํ์ต๋๋ค).
๋น์ ์ด ํํ ์ ๋ํด ์ด์ผ๊ธฐํ๊ณ ์๋ ๊ฒ์ด ๋ถ๋ช ํ ๊ฒ ๊ฐ์ง๋ง ์ธ์ฉํ ์น์ ์ ํจํด ์ ๊ดํ ๊ฒ์ด์์ต๋๋ค(๋ค์ ๋จ๋ฝ์์ ํจํด์ ๋ํด ์ด์ผ๊ธฐํ๋ค๋ ๊ฒ์ ์๊ณ ์์ง๋ง, ๋๋ ๊ทธ ๋จ๋ฝ์์ ๋ค๋ฃจ์ง ์๋ "ํ์์ฑ" ๋ฌธ์ ์ ๋ํด ๋ฌป๊ณ ์๋ ๊ฒ์ ๋๋ค ๐) .
ํจํด์ ํ์ฌ ์ํ๋ x...y
ํ์์ ํฌํจ ๋ฒ์ ํจํด๋ง ์ง์ํ๋ค๋ ๊ฒ์
๋๋ค. ๋
์ ๋ฒ์ ํจํด ์ด ์๋ ๊ฒ์ด ์ ๋ง ์ค๋ง์ค๋ฌ์ ๋์ง ์ฌ๋ถ์ ๋ํด ๋ ์ด์ผ๊ธฐํ ์ ์์ต๋๊น?
@withoutboats
๋ ์ ๋ฒ์ ํจํด์ด ์๋ ๊ฒ์ด ์ ๋ง ์ค๋ง์ค๋ฌ์ ๋์ง ์ฌ๋ถ์ ๋ํด ๋ ์ด์ผ๊ธฐํ ์ ์์ต๋๊น?
๊ฐ์ ๊ฒ
match offset {
0x0200 .. 0x0280 => { /* GICD_ISPENDR<n> */ }
0x0280 .. 0x0300 => { /* GICD_ICPENDR<n> */ }
0x0300 .. 0x0380 => { /* GICD_ISACTIVER<n> */ }
0x0380 .. 0x0400 => { /* GICD_ICACTIVER<n> */ }
0x0400 .. 0x0800 => { /* GICD_IPRIORITYR<n> */ }
}
๋
match offset {
0x0200 ... 0x027C => { /* GICD_ISPENDR<n> */ }
0x0280 ... 0x02FC => { /* GICD_ICPENDR<n> */ }
0x0300 ... 0x037C => { /* GICD_ISACTIVER<n> */ }
0x0380 ... 0x03FC => { /* GICD_ICACTIVER<n> */ }
0x0400 ... 0x07FC => { /* GICD_IPRIORITYR<n> */ }
}
๋๋ ๊ทธ๊ฒ์ด ํน๋ณํ ์ค๋ง์ค๋ฝ๋ค๊ณ ๋งํ์ง๋ ์๊ฒ ์ง๋ง, ์ฒซ ๋ฒ์งธ ๊ฒ์ด ํ์คํ ๋ ๋ฉ์ง๊ฒ ๋ณด์ ๋๋ค.
@withoutboats ๋ช
ํ์ฑ์ ๊ธฐํ๊ธฐ ์ํด ์ฌ๋ฌ ๋ฒ ๋ฐฐํ์ ๋ฒ์ ํํ, ํฌ๊ด์ ๋ฒ์ ํํ, ํฌ๊ด์ ๋ฒ์ ํจํด์ ์ํ์ต๋๋ค. ๋๋ ๋ฐฐํ์ ๋ฒ์ ํจํด์ ๊ฐ๋ ๊ฒ์ ๋ํด ๊น์ด ๊ด์ฌ์ ๊ฐ์ง๊ณ ์์๋ ์๊ฐ์ ๋ฐ๋ก ์๊ฐํ ์๋ ์์ง๋ง, ๋๋ ๋ํ ๊ทธ๊ฒ์ ๋ฐ๋ํ์ง ์์ ๊ฒ์
๋๋ค. ์ฐ๋ฆฌ๋ ๋
์ ์ ์ธ ๋ฒ์ ํจํด์ด์๋ ๊ฒฝ์ฐ์๋ ํฌ๊ด์ ์ธ ๋ฒ์ ํจํด์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ, ๋๋ ์ฌ์ ํ ๋งค์ฐ ํผ๋ ๊ฒ ...
๋
์ ์ ์ธ ๋ฒ์ ํํ์์ ์ฌ์ฉ ..
.
@petrochenkov ๋๋ ๊ทธ๊ฒ๋ค์ด C
์๋๋ผ F
๋ก ๋๋์ผ ํ๋ค๊ณ ๊ฐ์ ํฉ๋๊น?
16์ง์ ๋ฒ์ ํจํด(์: 0x8000...0x9FFF => /* body */
์์ ๊ฐ์ ๊ฒฝ์ฐ๋ฅผ ๊ฒช์์ต๋๋ค. 0x8000..0xA000
๊ฐ ์ฝ๊ฐ ๋ ์ง๊ด์ ์ธ ์์ฑ์ ๊ฐ์ง๊ณ ์๋ค๋ ๊ฒ์ ์์์ต๋๋ค. ์๊ฐํ ํ์ ์์ด ์ฆ์ ๋ฒ์์ ํฌ๊ธฐ๊ฐ 0xA000 - 0x8000 = 0x2000
์ด๊ณ ๋ค์ ์ธ์ ๋ฒ์๊ฐ 0xA000
์์ ์์ํ๋ค๋ ๊ฒ์ ์ ์ ์์ต๋๋ค.
ํฌ๊ด์ ์ธ ๋ฒ์์์ ์ด๋ฌํ ์ฌ์ค์ ํ์ธํ๋ ๋ฐ ํ์ํ +1
์ฒ๋ฆฌํ๋ ๊ฒ์ ์ ๊ฐ ๊ฐ๋นํ ์ ์๋ ์์ ์ฐจ์ด์ง๋ง ์ผ๋ฐ์ ์ผ๋ก ๋ฐฐํ์ ๋ฒ์(ํจํด ๋ฐ ํํ์ ๋ชจ๋)๊ฐ ์ ์์
์ ๋ ์ ํฉํฉ๋๋ค.
@petrochenkov 16์ง์์ ๋ํ ๋ ์ ๋ฒ์๋ฅผ ์ ํธํ๋ ์ด์ ๋ฅผ ์ ์ ์์ต๋๋ค(์์ง ๊ทธ๋ ์ง ์์ ์๋ ์์ง๋ง ์ด๊ฒ์ ๋งค์ฐ YMMV ๊ฑฐ๋์ฒ๋ผ ๋๊ปด์ง๋๋ค).
๊ทธ๋ฌ๋ ์ฌ๋ผ์ด์ค ๊ตฌ๋ฌธ์ ๋ชจํธ์ฑ์ ์ด๋ป๊ฒ ์ฒ๋ฆฌํ ๊น์?
@joshtriplett
ํฌํจ ๋ฒ์ ํจํด์ด
...
ํ๊ณ ๋ฐฐํ์ ๋ฒ์ ํํ์์ด..
์ฌ์ฉํ๋ ๊ฒฝ์ฐ ์ฌ์ ํ ๋งค์ฐ ํผ๋์ค๋ฌ์ธ ๊ฒ์ ๋๋ค.
์ด๊ฒ์ด ์ค๋๋ Rust๊ฐ ์๋ํ๋ ๋ฐฉ์์ด๋ฉฐ ์ฌ๊ฐํ ํผ๋์ ์์ธ์ด ์๋ ๊ฒ ๊ฐ์ต๋๊น?
@solson
๋๋ ๊ทธ๊ฒ๋ค์ด C๊ฐ ์๋๋ผ F๋ก ๋๋ ์์ ์ด๋ผ๊ณ ๊ฐ์ ํฉ๋๋ค.
์๋ :)
(์ด๊ฒ๋ค์ 32๋นํธ์ด๊ณ offset
๋ 4์ ๋ฐฐ์์
๋๋ค.)
@withoutboats
16์ง์์ ๋ํด ๋ ์ ์ ์ธ ๋ฒ์๋ฅผ ์ ํธํ๋ ์ด์ ๋ฅผ ์ ์ ์์ต๋๋ค.
๋๋ ์ด๊ฒ์ด ๊ฐ๋ ฅํ ์ ํธ๋๊ฐ ์๋๋ผ๋ ์ ์ ์ ์ํด์ผ ํฉ๋๋ค. ๋๋ ์ฌ์ ํ ๋ ์ ์ ์ธ ํจํด๊ณผ ํฌ๊ด์ ์ธ ๋ฒ์๋ฅผ ๋ชจ๋ ์ญ์ ํด๋ ๊ด์ฐฎ์ ๊ฒ์ ๋๋ค(ํ์ง๋ง ๊ทธ ์ค ํ๋๋ ์ ์ธ, ๋๋ฌด ์ฐ์ค๊ฝ์ค๋ฌ์ธ ๊ฒ์ ๋๋ค).
๊ทธ๋ฌ๋ ์ฌ๋ผ์ด์ค ๊ตฌ๋ฌธ์ ๋ชจํธ์ฑ์ ์ด๋ป๊ฒ ์ฒ๋ฆฌํ ๊น์?
์ฉ์ดํ๊ฒ! PATTERN..
=> .. @ PATTERN
ํฌ๊ด์ ์ธ ๋ฒ์๊ฐ ๋จ์ํ๊ธฐ๋ฅผ ์ํ๋ ์ฃผ๋ ์ด์ ๋ ๋ณ์์ ์ค์ง ๊ฐ์ ์ ๋ฌํ๋ ์ํฉ์ ๋ ๋ฒ ์ด์ ๋ถ๋ช์ณค๊ณ ์ ํํ ํ ๋ณ์ ์ ํ์ด ๋ณด์ ํ ์ ์๋ ์ต๋๊ฐ์ด๋ฏ๋ก ์ ์ผํ ์๋ฃจ์ ์ ๋๋ค. ์ปดํ์ผ ํ์์ ์ค๋ฒํ๋ก๋ฅผ ๋ฐฐ์ ํ๋ ๋ฐฉ๋ฒ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
+ 1
์ ์ ์
์บ์คํ
(๋ด๊ฐ ์ด๋ฏธ u64
์ ์์ง ์๊ณ ์ฐ์ํ์ง ์๋ค๊ณ ๊ฐ์ )๊ณ ์ ํ ๋ชฉ์ ์ด ์๋ ์๊ณ ๋ฆฌ์ฆ์ + 1
๋ฅผ ์ถ๊ฐํ๋ ๋์ ํฌ๊ด์ ๋ฒ์๋ฅผ ์ฌ์ฉํ๋ ์ต๊ด์ ๊ตฌ์ถํ๋ ๊ฒ์ ๋์ค์ cargo fuzz
... ๋ฐ + 1
๋ณด๋ค ์ด๋ฆ์ ๋ ๋ง์ ๋ฌธ์๊ฐ ํฌํจ๋ "๋ฐฐํ์ ์์ ํฌํจ" ๊ธฐ๋ฅ์ ํฌํจ ๋ฒ์๊ฐ ์ต๊ด์ ์ผ๋ก ์ฌ์ฉํด์ผ ํ๋ ๊ฒ์ด ์๋๋ผ ์์ธ์ ์ธ ๊ฒ์ด๋ผ๋ ์ธ์์ ์ค๋๋ค.
๊ทธ๊ฒ์ด ์ ๊ฐ ๋ฐ๋ํ๋ ๊ฐ์ฅ ํฐ ์ด์ ์ค ํ๋์ ๋๋ค. ํฌ๊ด์ ์ธ ๋ฒ์๊ฐ ํดํน์ด๋ผ๋ ์ธ์์ ์ ๋ฌํ๋ฉฐ, ๋ฐฐํ์ ์ธ ๋ฒ์๊ฐ ์คํจํ ๊ฒ์ผ๋ก ์ ์ฆ๋ ๋ ์ฌ์ฉ๋ฉ๋๋ค.
@ssokolow ํ์ง๋ง ๊ทธ ์ฌ์ฉ ์ฌ๋ก๋ ์๊ณก ๊ธฐ๋ฅ์ผ๋ก ํธ์ํ๊ฒ ๋ค๋ฃน๋๋ค. ํฌํจ๋ ๋ฒ์๋ฅผ ๋ง๋๋ ๊ฒ์ด ๊ฐ๋ฅํ์ง ์์์ผ ํ๋ค๋ ์ ์ฅ์ ์ทจํ๋ ์ฌ๋์ ์๋ฌด๋ ์์ต๋๋ค.
๋๋ ์ ์ฃผ๊ณก ๊ธฐ๋ฅ์ ๋ํ @withoutboats ์์ด๋์ด๋ฅผ ์ข์ํฉ๋๋ค. ํฌ๊ด์ ์ธ ๋ฒ์๊ฐ ๋ ์ผ๋ฐ์ ์ผ ์ ์๋ ๋ค๋ฅธ ์ฅ์๋ ์ ์๋ฅผ ์ฌ์ฉํ์ง ์๋ ๊ฒฝ์ฐ๋ผ๊ณ ์๊ฐํฉ๋๋ค. ์๋ฅผ ๋ค์ด btree(๋๋ ์ ์ฌํ ๋ฐ์ดํฐ ๊ตฌ์กฐ)์์ ๊ฒ์ ๋ฒ์๋ฅผ ์ง์ ํ๋ ๊ฒฝ์ฐ์ ๋๋ค.
@withoutboats ๊ทํ๊ฐ ์๋ตํ๋ ๋์ ๋ด ๊ฒ์๋ฌผ์ ์๋นํ ํธ์งํ์ง๋ง ๋ด๊ฐ ์ถ๊ฐํ ์์ ์ ํฌ๊ด์ ์ธ ๋ฒ์๋ฅผ ๊ตฌ๋ฌธ์ ์ผ๋ก 2๊ธ ์๋ฏผ์ผ๋ก ๋ง๋๋ ๊ฒ์
๋๋ค(๋ฐฐํ์ ๋ฒ์์ + 1
๋ฅผ ์ถ๊ฐํ๋ ๊ฒ๋ณด๋ค ๊ตฌ๋ฌธ์ด ๋ ๊น๋๋ค. ), ๊ทธ๊ฒ๋ค์ ์ฌ์ฉํ๋ ๊ฒ์ ๋ํ ๋ฏธ๋ฌํ ๋๋ด๊ณผ "๋์ค์ cargo fuzz
๋ต๊ฒ ์ต๋๋ค" ๋ฐ์ด์ฒ๋ผ ๋๊ปด์ง๋๋ค.
๋ค๋ฅธ ๊ฒ์ด ์๋ค๋ฉด, ๊ทธ๊ฒ์ ํ์ต์ฑ ์ฌ๋ง๊ท์ ๋๋ค.
Rust๋ ๋ฌดํํ ์ ์ ์ง์์ ์ ๊ณตํ๋ Python 3.x๊ฐ ์๋๋๋ค. Rust๋ ์ฌ์ฉ์์๊ฒ ํ๋์จ์ด ์ ์ถฉ์์ ์จ๊ธฐ์ง ์์ผ๋ฉฐ int
๋์ u32
์ ์น๊ตฌ๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ ์ผ๋ถ๋ก ..=
์ ํธํฉ๋๋ค. (ํนํ ์ง๊ธ๊น์ง cargo fuzz
์ "ํธ๋กํผ ์ผ์ด์ค"์์ ์ค๋ฒํ๋ก/์ธ๋ํ๋ก ์ค๋ฅ๊ฐ ๊ฐ์ฅ ์ผ๋ฐ์ ์ด๋ผ๋ ์ ์ ๊ฐ์ํ ๋)
ํธ์ง: ์ด์ ๋ํ ์ด๋ฉ์ผ ์๋ฆผ์๋ง ํ์๋๋ ๋นํธ๋ ๋ฌด์ํ์ญ์์ค. ๋ฐฉ๊ธ ์ผ์ด๋ฌ๊ณ ์์ง ๋ชจ๋ ์ค๋ฆฐ๋์์ ๋ฐ์ฌํ์ง ์์ต๋๋ค.
๋๋ inclusive(n..m)
๋ฅผ ๋๋ด์ผ๋ก ๋ณด์ง ์์ต๋๋ค... n..(m + 1)
๋ฐ n..=m
๋ณด๋ค ๋ด ์ฝ๋๋ฅผ ์ฝ๊ธฐ ์ฝ๊ฒ ๋ง๋๋ ๋งค์ฐ ๋ช
ํํ ๊ตฌ์กฐ์ด๊ธฐ ๋๋ฌธ์ ์์ฑํ๋ ๊ฒ์ ์ ํธํฉ๋๋ค.
n..=m
๋ inclusive(n..m)
IMO๋ณด๋ค ํ์ต์ฑ ์ฌ๋ง๊ท์ ๊ฐ๊น์ต๋๋ค.
๋งค์น์ ๊ฒฝ์ฐ ํน์ ์ ํ์ ํจํด๋ณด๋ค๋ ์ซ์ ๋ฒ์๋ฅผ ์์ ํ ์ปค๋ฒํ๊ณ ์ ํ๋ ๋ฐ๋์ด ์๋ค๊ณ ์๊ฐํฉ๋๋ค.
์๋ง๋ "์ด์ ์์ ๊ณ์" ๊ตฌ๋ฌธ์ด ์๋ ๊ฒฝ์ฐ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์๋ ์์ต๋๋ค.
BTW, ์ฒซ ๋ฒ์งธ ํจํด๋ง ์ผ์นํ๋ฏ๋ก ์์ ๋ฒํธ๋ฅผ ์๋ตํ ์ ์์ต๋๋ค.
match offset {
0 ... 0x01FF => {}
0 ... 0x027C => { /* GICD_ISPENDR<n> */ }
0 ... 0x02FC => { /* GICD_ICPENDR<n> */ }
0 ... 0x037C => { /* GICD_ISACTIVER<n> */ }
0 ... 0x03FC => { /* GICD_ICACTIVER<n> */ }
0 ... 0x07FC => { /* GICD_IPRIORITYR<n> */ }
}
๋๋ ์ด๊ฒ์ด ๊ด์ ์ ๋ฌธ์ ์ผ ์ ์๋ค๋ ๊ฒ์ ์ธ์ ํ์ง๋ง:
..
๋ฐ ..=
๋ฅผ ๋ณผ ๋ "ํ. ์ ๊ทธ๋ ๊ฒ ์์ ์ฐจ์ด์ ๋ํด ๋ ๊ฐ์ง ๊ตฌ๋ฌธ์ด ์๋์ง ๊ถ๊ธํฉ๋๋ค."๋ผ๊ณ ์๊ฐํฉ๋๋ค. " 1..pivot
๋ฐ pivot..end
" ๋ " x..=y
์ฌ๊ธฐ์ y
๋ ๊ฐ๋ฅํ ์ต๋ ๊ฐ์ผ ์ ์์ต๋๋ค."
๊ฐ๋ณ ํฌ๊ธฐ ์ธก๋ฉด์์ ์ต๊ด์ ์ผ๋ก ์๊ฐํ ๋งํผ ์ถฉ๋ถํ ๊ฒฝํํ๊ธฐ ์ ์ + 1
๋ณด๋ค inclusive()
์ฌ์ฉํ์ ๊ฒ์
๋๋ค. + 1
์ด๋ฑํ๊ต ๋๋ถํฐ ์งง๊ณ ํ์ดํํ๊ธฐ ์ฌ์ ๊ณ , ๊ฒฝํ์ด ๋ถ์กฑํ ํ์๋ ๋ง์
์ด ์ค๋ฒํ๋ก๋ฅผ ์ผ์ผํค๋ ๊ฒ์ด ๊ฑฑ์ ๋์ง ์๋ Python ๋ฐ JavaScript์ ๊ฐ์ ์ธ์ด๋ก ์์
ํ๋ ๋ฐ ์ต์ํฉ๋๋ค.
ํธ์ง: ...๊ทธ๋ฆฌ๊ณ ์ฐ๋ฆฌ๊ฐ ์ด์ ์ ๋ง์ถฐ์ผ ํ๋ค๊ณ ์๊ฐํ๋ ํฌ์ธํธ 1์ ๊ฐ๋ ์ ๊ตฌ๋ณ์ ๋๋ค. (์ฆ, "X์์ ํผ๋ฒ์ผ๋ก"์ "X์์ ๋๊น์ง"๋ ํ๋ก๊ทธ๋๋จธ์ ๋ง์์์ ๊ตฌ๋ณ๋์ด์ผ ํฉ๋๋ค.)
@ํฌ๋ฅด๋ฌ
๋์ฐํ๋ค ๐
์ด ํน์ ํ ๊ฒฝ์ฐ์ ๋ฒ์ ์์์ ์ฝ๋๋ฅผ ์ฝ๋ ์ฌ๋์๊ฒ ์ ๋ง ์ ๋ง ์ค์ํ๋ฉฐ, ํฌ๊ด์ /๋ฐฐํ์ ๋ฒ์ ๋ฌธ์ ๋ณด๋ค ํจ์ฌ ๋ ์ค์ํฉ๋๋ค.
@ssokolow +1
๋ฅผ ๋ฌธ์ ๋ก ๋ง๋๋ ๊ฒ์ ๋ฌธ์ ์๊ฐ ์๋๋ผ ์ค๋ฒํ๋ก ๊ฐ๋ฅ์ฑ์ ์ฒ๋ฆฌํด์ผ ํ๋ ๊ฒ ๊ฐ์ต๋๋ค. ๋ํ ์๋๋ฅผ ์ ๋ฌํ์ง๋ ์์ผ๋ฉฐ ์ฐ์ ์์ ๊ดํธ๋ฅผ ๋ญ๊ธ๋งํด์ผ ํฉ๋๋ค. ์ด ๋ชจ๋ ๊ฒ์ด ๋ฌธ์ ์๋ณด๋ค ํจ์ฌ ๋ ์ค์ํด ๋ณด์
๋๋ค.
์ค๋ฒํ๋ก์ ๋ํด ๋ชจ๋ฅด๋ ์ฌ๋์ ํฌํจ ๋ฒ์๋ฅผ ๋ง๋ค๊ธฐ ์ ์ +1
๋๋ฌํ ์ ์์ง๋ง ์ด๋ ๊ตฌ๋ฌธ์ ์์กดํ์ง ์๋ ๊ฒ ๊ฐ์ต๋๋ค. ..=
๊ฐ ํ๋์ ์ฌ๋ฌผ์ด๊ณ inclusive()
๊ฐ ํฌํจ๋ ๋ฒ์๋ฅผ ๊ตฌ์ฒด์ ์ผ๋ก ์ํ๋ ์ด์ ๋ฅผ ๋ฐฐ์ธ ์ ์๋ ๊ต์ก ๊ฐ๋ฅํ ์๊ฐ์์ ๋ฐ๊ฒฌํ๋ ๊ฒ์
๋๋ค.
@petrochenkov
๋๋ ์ฌ์ ํ ๋ ์ ์ ์ธ ํจํด๊ณผ ํฌํจ ๋ฒ์ (๊ทธ๋ฌ๋ ๋๋ฌด ๋ง๋ ์๋๋ ๊ฒ ์ค ํ๋) ๋ชจ๋ ํ๋ฝ๊ณผ ๊ด์ฐฎ์ ๊ฒ์ ๋๋ค.
์ด์ ๋ํด ์ ๊ทธ๋ ๊ฒ ๊ฐํ๊ฒ ๋๋ผ๋์ง ์ค๋ช
ํด ์ฃผ์๊ฒ ์ต๋๊น? ๋ฐฐํ์ ํจํด์ ๋ฐ์๋ค์ด๋ ๊ฒ์ ์ฌ์ฉ์๊ฐ 0...10
๋ฅผ ํํ์์ผ๋ก ๊ธฐ๋ํ๊ฒ ํ ์ ์๋ค๋ ๋จ์ ์ด ์์ ๋ฟ์ด๋ผ๊ณ ์๊ฐํ์ง๋ง ๊ทธ๋ ๊ฒ ๋์์ง ๋ ์์ต๋๋ค.
inclusive()
๋ํ ๋ด ๋ฌธ์ ์ค ์ผ๋ถ๋ ์ด๊ฒ์ด "๊ทธ๋ฅ" ํจ์๋ผ๋ ์ ์ด๋ฉฐ ์ฌ๋๋ค์ด Rust ๊ตฌ๋ฌธ ์์ธ์ผ๋ก ์ด๋ํ์ฌ "range" ๋๋ "iterator"๋ฅผ ๊ฒ์ํ ๋ค์ ROI๊ฐ ์ถฉ๋ถํ์ง ์๋ค๊ณ ๊ฐ์ ํ๋ ๊ฒ๊ณผ ๊ฐ์ ์ผ์ ํ ๊น๋ด ๊ฑฑ์ ๋ฉ๋๋ค. "๋ฐ๋ณต์ ๋ณด๊ธฐ"๋ฅผ ์ํด.
("์ ์ฉํ ๊ฒ์ ์ฐพ์ ๊ธฐํ๊ฐ ์์ ๋ ๊ต๊ณผ์๋ฅผ ์ฝ๊ณ ์ถ์ง ์์ต๋๋ค... ๋ฒ์๋ฅผ ๋ฐ๋ณตํ๊ณ ์งํ ์ํฉ์ผ๋ก ๋์๊ฐ๊ณ ์ถ์ ๋ฟ์ ๋๋ค.")
@withoutboats ์ธํด๋ฃจ ์๋ธ(a...b)๊ฐ ์์ง๋ง ๊ฒฝ๊ธฐ์์ ์ฌ์ฉํ ์ ์๋ค๋ฉด IMO์ ๊ฐ์น๊ฐ ์์ต๋๋ค.
๋ด๊ฐ ํฌํจ ๋ฒ์๋ฅผ ์ฌ์ฉํ ๋ ๋๋ถ๋ถ์ ๊ฒฝ์ฐ ์ผ์น ํจํด์ ์์ต๋๋ค!
๊ทธ๋ ๋ค๋ฉด ์ ...
์ ๊ฑฐํ๊ณ ๋งค์น ๋ด๋ถ์ ์ธ๋ถ์์ ..=
์ฌ์ฉํ ์ ์์ต๋๊น?
@Boscop ์ ์์ ๋งค์น์์ ...
๋ฅผ ์ ๊ฑฐํ๋ ๊ฒ์ด ์๋๋ผ ํจํด์ ์์ ์ ์ผ๋ก ์ ์งํ๋ ๊ฒ์
๋๋ค.
@ssokolow ๋ ..
์น์
์ ๋ฉ๋ชจ๋ก ๊ฝค ์ฝ๊ฒ ํด๊ฒฐํ ์ ์๋ ๊ฒ ๊ฐ์ต๋๋ค.
@withoutboats ํ์ง๋ง ๋งค์น์์ ...
๋ฅผ ์ ๊ฑฐํ๊ณ ๋์ ..=
์ฌ์ฉํ์ฌ ์ผ๊ด์ฑ์ ์ ์งํ๋ ๊ฒ์ ์ด๋ป์ต๋๊น?
(๋งค์น ์ํ์์ ..=
๊ฐ ๋๋๋ก)
๋ถ๋ ์์์ ์ ์ซ์ ๋ฒ์ ์ ์ฉ์ ๊ฒฝ์ฐ ๋ฐฐํ์ ๋์์ด ๋ฉ๋๋ค. ์๋ฅผ ๋ค์ด ๋ค์ ๊ฒฝ๊ณ ์ค ํ๋๋ ์์ ํ ํฌํจ๋์ง๋ง ๋ค๋ฅธ ๊ฒฝ๊ณ๋ ํฌํจ๋์ง ์์ต๋๋ค.
match x {
0.0...3.141592653589792 => 1,
3.141592653589793...6.283185307179585 => 2,
6.283185307179586...10.0 => 3,
_ => 4,
}
๊ทธ๋ฆฌ๊ณ ๊ฒน์นจ์ผ๋ก ์์ฑํ๋ ๊ฒ์ ์คํ๋ ค ๊ธฐ๋ถ์ด ๋์ฉ๋๋ค(์์ "ํ์ด ์ฃผ๋ฌธ๋๊ธฐ ๋๋ฌธ์ -โ์์ ๋ชจ๋ ๊ฒ์ ์์ํ์ญ์์ค"์ ๋๋์ ์ผ๋ก ์ ์ฌํฉ๋๋ค). ํ๋ฃจ๊ฐ [00:00, 23:59:59]๊ฐ ์๋๋ผ [00:00, 24:00)์ด๊ธฐ ๋๋ฌธ์ ISO8601์ด T24:00์ ํ์ฉํ๋ ๋ฐฉ๋ฒ๊ณผ ๊ฐ์ ๋ ์ง/์๊ฐ๋ ์ฐธ์กฐํ์ญ์์ค. ๋๋ ๋ฌธ์์ด, ๋๋ ํฉ๋ฆฌ์ฑ, ๋๋ ...
๋ฐฐํ์ ์ด๊ฑฐ๋ ํฌํจ๋ง ์ ํํ ์ ์๋ ๊ฒฝ์ฐ์๋ ๋งค๋ฒ ๋ฐฐํ์ ์กฐ์น๋ฅผ ์ทจํ๊ฒ ์ต๋๋ค.
(์ ์ธ: ์ธ๋ฑ์ฑ์ ์ํ 1 <= x <= N
ํจํด์ ์ค์ ๋ก 0 < x <= N
๋ก ์ํํ๋ ๊ฒ์ด ๋ ๋ซ์ต๋๋ค. ๋ํ Dijkstra๊ฐ ๋งํ ๊ฒ๊ณผ ๊ฐ์ ์ด์ ๋ก ๋ฐฐํ์ ์
๋๋ค. 0 ๊ธฐ๋ฐ ๋์ 1 ๊ธฐ๋ฐ ์ธ๋ฑ์ฑ์ผ๋ก ์ ํ๋์์ต๋๋ค.)
์ด ์ฐ์ฐ์๋ https://github.com/rust-lang/rfcs/pull/1961์์ ๋ด๊ฐ ์ ์ํ ํด๋จํ ๊ธฐ๋ฅ์ ๋งค์ฐ ๋์์ด ๋์์ ๊ฒ์ ๋๋ค. ๊ทธ๋ฌ๋ ์ด๊ฒ์ด ์์ ํ๋์ง ์์๊ธฐ ๋๋ฌธ์ ์๋ง๋ ๊ทธ ์ ์์ ๋ค์๊ณผ ๊ฐ์ด ์์ ํด์ผ ํ ๊ฒ์ ๋๋ค. ๋์ ๋ ๊ฐ์ ์ต์ ๋ฐ ์ต๋ ์ธ์๋ฅผ ์ฌ์ฉํ์ญ์์ค. InclusiveRange๋ ๋ถ๋ ์์์ ๊ฐ์ผ๋ก ์์ ํ ๋๋ ๋งค์ฐ ์ ์ฉํ๋ฏ๋ก ๋ค์๊ณผ ๊ฐ์ ์์ ์ ์ํํ ํ์๊ฐ ์์ต๋๋ค.
0.0..1.0+์ก์ค๋ก
๊ทธ๊ฒ์ด ๋ง๋์ง ํ์คํ์ง ์์ง๋ง ์ง๊ธ์ ๋ถ๋ ์์์ ์ซ์์ ํฌ๊ด์ ์ธ ๋ฒ์๋ฅผ ์ ์ธํ๋ ๊ฒ์ด ๋งค์ฐ ์ด๋ ต์ต๋๋ค.
์ด๋ฅผ ์ํํ๋ ์ฌ๋ฐ๋ฅธ ๋ฐฉ๋ฒ์ ์ก์ค๋ก ์ด ์๋ nextafter
๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์
๋๋ค. ์ฆ x...y == x..nextafter(y)
. ieee754 ํฌ๋ ์ดํธ๋ ์ด๋ฌํ ๊ธฐ๋ฅ์ ๋
ธ์ถ
์ด๋ฐ, inclusive(a..b)
๊ตฌ๋ฌธ์ ๋ํด ์ธ๊ธํ์ง๋ง ์ฌ์ค์ด ์๋๋ผ๋ ๊ฒ์ ๊นจ๋ฌ์์ต๋๋ค. ์ด์จ๋ , ๋๋ ๊ทธ๊ฒ์ ์ข์ํ์ง๋ง ์ฐ๋ฆฌ๊ฐ ๋ ๋์ ์ด๋ฆ์ ์์ ๊ฑฐ๋ก ํ ์ ์๊ธฐ๋ฅผ ๋ฐ๋๋๋ค.
@durka ์ด๋ฆ์ด ๋ถ๋ช ํด ๋ณด์ ๋๋ค. ์ด์ ๋ํ ์ฐ๋ ค ์ฌํญ์ ์์ธํ ์ค๋ช ํด ์ฃผ์๊ฒ ์ต๋๊น?
๊ทธ๋์ ํฌ๊ด์ ์ธ ๋ฒ์๋ฅผ ์ํด ์ฐ๋ฆฌ๊ฐํด์ผํฉ๋๋ค a ... b
์์ match
๋ฐ inclusive(a..b)
์ผ์น์ ์ธ๋ถ?
์ ์ฐ๋ฆฌ๋ ์ผ๊ด์ฑ์ด ์๊ณ ์ด๋์๋ a ..= b
๊ฐ์ง ์ ์์ต๋๊น?
ops::{RangeInclusive, RangeToInclusive}
์ด ๊ณต์์ ์ผ๋ก ์์ ํ๋๋ ๊ฒ์ ๋ฐฉํดํ๋ ๊ฒ์ด ์์ต๋๊น?
ํ์ฌ ๊ฐ์ฅ ํฐ ์ฅ์ ๋ฌผ์ ๊ตฌ๋ฌธ์ ๋ํ ๋ ผ์์ธ ๊ฒ ๊ฐ์ต๋๋ค. ๋น๋ก ๊ทธ ๋ ผ์์ ๊ด๊ณ์์ด ์ต์ข ๊ตฌ๋ฌธ์ด ๋ฌด์์ธ์ง์ ๊ด๊ณ์์ด ํฌ๊ด์ ์ธ ๋ฒ์๊ฐ ์กด์ฌํ ๊ฒ์ด๋ผ๊ณ ํ์ ํฉ๋๋ค.
์์ ์ ์ธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๊ตฌํํ๊ธฐ ์ํด ์ด๋ฌํ ์ ํ์ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข์ผ๋ฉฐ ์ด๋ฌํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์๋น์๋ ํน์ ๊ตฌ๋ฌธ์ ์ฌ์ฉํ๋ ค๋ ๊ฒฝ์ฐ ๊ธฐ๋ฅ ํ๋๊ทธ๋ฅผ ํ์ฑํํ๊ธฐ๋ก ๊ฒฐ์ ํ ์ ์์ต๋๋ค.
๋ค๋ฅธ ๋ RangeInclusive
์ ๋ํด ์๊ฒ ๋ ํ ๊ฐ์ง๋ ๋ฒ์๋ฅผ ํ์ฉํ๋ ค๊ณ ํ๋ฉด ์ฝ๋๋ฅผ ์์ฑํ๋ ๋ฐ ์ด๋ ค์์ด ์๋ค๋ ๊ฒ์
๋๋ค. ํด๋จํ ์ค๋ ๋๋ .clamp(1...9)
ํ์ฉ์ ๋ํด ์ด์ผ๊ธฐํ์ง๋ง ์ฝ๋๋ ๋ค์๊ณผ ๊ฐ์ด ๋ณด์
๋๋ค.
fn clamp(self, r: RangeInclusive<Self>) -> Self where Self : Sized {
match r {
RangeInclusive::Empty { .. } =>
panic!("Cannot clamp to an empty range"),
RangeInclusive::NonEmpty { start, end } => {
assert!(start <= end, "Cannot clamp to a degenerate range");
if self < start { start }
else if self > end { end }
else { self }
}
}
}
RangeInclusive::Empty
๋ฅผ ์ฒ๋ฆฌํด์ผ ํ๋ ๊ฒ์ ๋ชฉํ๊ฐ ๋ฉ์ง ๊ตฌ๋ฌธ์ผ๋ก ์์ ๋ฐ์๋ค์ด๋ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ ๋ถํ์ํ๋ค๊ณ ๋๋๋๋ค. ์ด๊ฑฐํ์ด ์๋๋ฉด fn clamp(self, RangeInclusive { start, end }: RangeInclusive<Self>)
๊ฐ ๋ ์ ์๊ณ ํจ์ฌ ๋ ๊นจ๋ํ ์ ์์ต๋๋ค.
๋ถํํ๋ ๋๋ ๊ทธ๊ฒ์ ๋ํด ๋ฌด์์ ํด์ผ ํ๋์ง์ ๋ํ ์ข์ ๋ต์ ๊ฐ์ง๊ณ ์์ง ์์ต๋๋ค. ์๋ํ๋ฉด .into_iter() ๋ฅผ ํฌํจํ์ง๋ง ๋ฐฐํ์ ์ด์ง ์๊ฒ ์๊ตฌํ๋ ๊ฒ๋ ๋ถํํ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ ๋๋ค...
๋ฌด์์ ์์ด๋์ด: ...
ํจํด ๊ตฌ๋ฌธ์ด ํฌํจ ๋ฒ์ ์ ํ๊ณผ ์ค์ ๋ก ๊ด๋ จ์ด ์๋์ง ํ์ธํ๋ฉด ์ฌ๊ธฐ์์ ์ ์๋ ...
์ ๊ด๋ จ์ด ์๋ ๊ตฌ๋ฌธ์ ์ฌ์ฉํ์ฌ ๊ตฌ๋ฌธ์ ํ๊ธฐํ๋ ๊ฒ์ ๊ณ ๋ คํ ์ ์์ต๋๋ค.
ํฌํจ ๋ฒ์ ํจํด์ |
ํจํด๊ณผ ๋ ๋ฐ์ ํ๊ฒ ๊ด๋ จ๋์ด ์์ผ๋ฏ๋ก |...
๊ฐ ์ข์ ํ๋ณด๊ฐ ๋ ์ ์์ต๋๋ค.
match {
1 | 2 | 3 => ...
1 |... 3 => ...
}
์ต์ข ๊ฒฐ๊ณผ๋ ํฌ๊ด์ ์ด๊ณ ๋ฐฐํ์ ์ธ ๋ฒ์ ๊ตฌ๋ฌธ์ด ๋ ์ด์ ํจํด ์ผ์น์ 1:1 ๊ด๊ณ๊ฐ ์์ผ๋ฏ๋ก ์ผ์นํ ํ์๊ฐ ์๋ค๋ ๊ฒ์ ๋๋ค.
@scottmcm
๋ถํํ๋ ๋๋ ๊ทธ๊ฒ์ ๋ํด ๋ฌด์์ ํด์ผ ํ๋์ง์ ๋ํ ์ข์ ๋ต์ ๊ฐ์ง๊ณ ์์ง ์์ต๋๋ค. ์๋ํ๋ฉด .into_iter() ๋ฅผ ํฌํจํ์ง๋ง ๋ฐฐํ์ ์ด์ง ์๊ฒ ์๊ตฌํ๋ ๊ฒ๋ ๋ถํํ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ ๋๋ค...
๋น ๋ฒ์์ ๋ํด ๋นํฉํ๊ณ ์์ ๋ฐํํ๋ range.nonempty()
์ ๊ฐ์ ๋์ฐ๋ฏธ๋ฅผ ์ถ๊ฐํ ์ ์์ต๋๊น?
๋ํ ์ฐ๋ฆฌ๋ ๊ตฌํํ ์ IntoIterator
์ ๋ํด RangeInclusive
๊ทธ๋ฆฌ๊ณ ๊ทธ๊ฒ์ ๋๋ฌด ๋ฉ๋ฆฌ ์ด๋ด ํด์ ํ์ง ์์ ๊ฒ์
๋๋ค.
RangeInclusive::Empty๋ ์ด๋ค ์ฌ์ฉ ์ฌ๋ก๋ฅผ ์ ๊ณตํฉ๋๊น? ํฌํจ ๋ฒ์์ ๋น ๋ฒ์๋ฅผ ๋ํ๋ด๋ ๊ธฐ๋ฅ์ด ํ์ํ ์ด์ ๋ ๋ฌด์์ ๋๊น? ์ด๋ป๊ฒ ์์ฑํ์๊ฒ ์ต๋๊น? (์ด๋ฏธ "5์์ 4๊น์ง์ ๋ฒ์"์ ๊ฐ์ ๊ฒ์ ์์ฑํ ์ ์๋ค๋ ์ ์ ์ ์ํ์ญ์์ค. ์ด ๋ฐ๋ณต์ ์๋ง๋ ๋น์ด ์๋ ๊ฒ์ผ๋ก ์ทจ๊ธํ ๊ฒ์ ๋๋ค.)
@joshtriplett ์ฃผ์ ์ฌ๋ก๋ ์ค๋ฒํ๋ก์ด์ง๋ง ํด๋น ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๋ฐฉ๋ฒ์ด ์์ต๋๋ค.
@joshtriplett start > end
์ค์ ๋ก 0u8...255u8
๋ผ๋ ์ค์ํ ๊ฒฝ์ฐ์์ ๋น ํฌํจ ๋ฒ์๋ฅผ ๋ํ๋ด๋ ๋ฐ ์๋ํ์ง ์์ต๋๋ค. ๋น์ ์ด ๋์ฐฉํ๋ฉด 255u8...255u8
์ ์๋ .next()
๋ฅผ, ๋น์ ๋ ํจ๋์ ์ป๊ฑฐ๋ ๋ฐ๊ฟ ๊ฒ 0u8...255u8
๋น์ด ์์ง ์์ต๋๋ค. ๋ฐ๋ผ์ ๋์ ๊ทธ ์์ ์์ Empty
๋ณํ์ผ๋ก ์ ํํฉ๋๋ค.
@solson ์, ํ๋์ ๋๋ค.
(๋๋ ๋น์ ์ด ๋ชจ๋ ๊ฒฝ์ฐ์ 255u8
๋ฅผ ์๋ฏธํ๋ค๊ณ ๊ฐ์ ํฉ๋๋ค.)
(๋๋ ๋น์ ์ด ๊ทธ ๋ชจ๋ ๊ฒฝ์ฐ์ 255u8์ ์๋ฏธํ๋ค๊ณ ๊ฐ์ ํฉ๋๋ค.)
๋ค, ๊ณ ๋ง์์. ์์ ๋จ.
@solson ๊ทธ๋ฌ๋ ์ด ๊ฒฝ์ฐ 0๊ณผ 255๋ฅผ ๊ตํํ์ฌ ์์ ํ ์ ์์ต๋๋ค.
@clarcharr ์ฌ์ค์
๋๋ค. .next()
ํญ์ Empty
๋ฒ์์ ์์ฑ์ ํน์ ์ผ์ด์คํด์ผ ํ๋ฏ๋ก ํญ์ ๋น์ด ์๋ ๊ฒ์ผ๋ก ์ฒ๋ฆฌ๋๋ ๋ฒ์๋ฅผ ์์ฑํ ์ ์์ต๋๋ค.
๊ฐ์ธ์ ์ผ๋ก ๋๋ ๊ทธ๊ฒ์ด ๋น ๋ฒ์๋ฅผ ํฌํจํ์ง ์๊ธฐ ๋๋ฌธ์ ๋ ๋์ ๋ฐฉ๋ฒ์ ์ข์ํฉ๋๋ค.
๊ทธ๋์ ์ด ์ค๋ ๋๋ 1๋ ๋ฐ ๋์ ๊ณ์๋์์ต๋๋ค. ๋ฐฉ๊ธ ๋ชจ๋ ๋ด์ฉ์ ๋ค ์ฝ์์ผ๋ฉฐ ์ ๊ท ์ฌ์ฉ์๋ฅผ ์ํ ๊ฐ๋ตํ ์์ฝ์ ๊ฒ์ํ๊ณ ์ฐ๋ฆฌ๊ฐ ๊ฒฐ์ ์ ๋ด๋ฆฌ๋ ๋ฐ ๋์์ด ๋์์ผ๋ฉด ํฉ๋๋ค.
์ค๋๋ Rust Stable์ด ํ๋ ์ผ:
0..5
๋ ํจํด ์ผ์น์ ์ฌ์ฉํ ์ ์๋ ๋ฐ๊ฐ๋ฐฉ ๋ฒ์ [0, 1, 2, 3, 4]๋ฅผ ๋ํ๋
๋๋ค.
0...5
๋ ํจํด ์ผ์น์์๋ง ์ฌ์ฉํ ์ ์๋ ๋ซํ ๋ฒ์ [0, 1, 2, 3, 4, 5]๋ฅผ ๋ํ๋
๋๋ค.
ํจํด ์ผ์น ์ธ๋ถ์์ ์ฌ์ฉํ ์ ์๋ ์ถ๊ฐ ํ์ ๋ฒ์ ๊ตฌ๋ฌธ์ ๋ํด ์ฌ๋ฌ ํ์์ด ์ ์๋์์ต๋๋ค. ๋๋ ๊ฐ๊ฐ์ ์ฅ์ ๊ณผ ๋จ์ ์ ๋ค๋ฃฐ ๊ฒ์ ๋๋ค.
0...5
์ฅ์ : ๊ธฐ์กด ํจํด ์ผ์น ๊ตฌ๋ฌธ๊ณผ ์ผ์นํ์ฌ ํจํด ์ผ์น ๊ตฌ๋ฌธ์ ๋ณ๊ฒฝ ์ฌํญ์ด ์๋ค๊ณ ๊ฐ์ ํ ๋ ์ธ์ด๋ฅผ ๋ ์์ง๋ ฅ ์๊ฒ ๋ง๋ญ๋๋ค.
๋จ์ : ์๋ชป ์ ๋ ฅํ๊ณ ํ๋์ ์ค๋ฅ๋ก ์ธํด ๋ฐ์ํ๊ธฐ ์ฝ๊ณ , ๋ค๋ฅธ ๊ฐ๋ ์ ์ ๋ฌํ๊ธฐ ์ํด ์ด ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํ๋ ๋ค๋ฅธ ์ธ์ด๋ก ์ธํด ์๋๋ฅผ ์คํดํ๊ธฐ ์ฝ์ต๋๋ค.
0..=5
์ฅ์ : ์๋ชป ์ ๋ ฅํ๊ธฐ๊ฐ ๋ ์ด๋ ต๊ณ ์๋ฏธ์ ์ผ๋ก ๋ ๋ช ํํฉ๋๋ค.
๋จ์ : ๊ธฐ์กด ํจํด ์ผ์น ๊ตฌ๋ฌธ๊ณผ ์ผ์นํ์ง ์์ต๋๋ค. ์ฌ์ฉ์๊ฐ ๋ฌป๊ฒ ํ ์ ์์ต๋๋ค. ์ฌ๊ธฐ๊ฐ ... ์ฌ๊ธฐ์ง๋ง ..= ์ฌ๊ธฐ์ ์๋ ์ด์ ๋ ๋ฌด์์ ๋๊น?
0..^5
..=
์ ๋งค์ฐ ์ ์ฌํ์ง๋ง ์ง์ ์ฐ์ฐ์์ฒ๋ผ ๋ณด์ธ๋ค๋ ์ถ๊ฐ ๋จ์ ์ด ์์ต๋๋ค.
inclusive(0..5)
์ฅ์ : ์๋ฏธ์ ๋งค์ฐ ๋ช ํํฉ๋๋ค. ์๋ชป ์ ๋ ฅ๋์ง ์์ต๋๋ค.
๋จ์ : ์ข ๊ธธ๋ค. ๋ํ ํจํด ์ผ์น ๊ตฌ๋ฌธ๊ณผ ์ผ์นํ์ง ์์ต๋๋ค.
0....5
์ฅ์ : ...
์ ์คํ ๋ฌธ์ ๋ ๋ฐฉ์งํฉ๋๋ค.
๋จ์ : ์๋ฏธ ์ฒด๊ณ๊ฐ ์ข์ง ์๊ณ ํจํด ์ผ์น ๊ตฌ๋ฌธ๊ณผ ์ผ์นํ์ง ์์ผ๋ฉฐ ํจํด ์ผ์น ๊ตฌ๋ฌธ๊ณผ ์ ์ฌํฉ๋๋ค.
[0..5]
์ ์์ต๋๋ค. ๋๊ดํธ๋ ์ด๋ฏธ ์ธ์ด์์ ๊ตฌ๋ฌธ๋ก ์ ์๋ฏธ๋ฅผ ๊ฐ์ง๊ณ ์์ต๋๋ค.
0..<=5
์ ์์ต๋๋ค. ๊ฐ์ ๋ฒ์์ ๋น๊ตํ๋ ๊ธฐ์กด ๊ตฌ๋ฌธ๊ณผ ์ถฉ๋ํฉ๋๋ค.
"ํจํด ์ผ์น ๊ตฌ๋ฌธ๊ณผ ์ผ์นํ์ง ์์"์ด๋ผ๋ ๋จ์ ์ด ์๋ ๋์ด๋ ๋ชจ๋ ์ต์
์ ํจํด ์ผ์น ๊ตฌ๋ฌธ์ ๋ณ๊ฒฝํ๋ฉด ๊ฐ์ ๋ ์ ์์ง๋ง ํด๋น ๊ฒฝ๋ก์๋ ์ด์ ๋ฒ์ ๊ณผ์ ํธํ์ฑ ๋ฌธ์ ๊ฐ ์์ต๋๋ค. ๋๋ ...
๋ฐ (์ฌ๊ธฐ์ ๊ตฌ๋ฌธ ์ ํ)์ ํจํด ์ผ์น ๋ด์์ ๋๋ฑํ๊ฒ ๋ง๋ค ์๋ ์์ต๋๋ค. ๊ทธ๋ฌ๋ฉด ํ์ ํธํ์ฑ์ด ๊นจ์ง๋ ๊ฒ์ ๋ฐฉ์งํ ์ ์์ง๋ง ํจํด ์ผ์น ์ธ๋ถ์์ ...
์ฌ์ฉํ๋ ๊ฒ์ ๋ฐฉ์งํ ์ ์์ต๋๋ค. ์๋ง๋ ์คํ์ผ ๊ฐ์ด๋๋ฅผ ์
๋ฐ์ดํธํ์ฌ ํด๋น ๊ฒฝ๋ก๋ฅผ ๋ฐ๋ผ๊ฐ ๊ฒฝ์ฐ ํจํด ์ผ์น์์ ...
๋ฅผ ์ฌ์ฉํ์ง ์๋๋ก ํ ์๋ ์์ต๋๋ค.
๋ํ ์ํ๊ณผ ํํ์ ๋ชจ๋ ํฌํจํ๊ฑฐ๋ ๋ฐฐํ์ ์ผ๋ก ๋ง๋ค ์ ์๋ ๋ณด๋ค ์ผ๋ฐ์ ์ธ ๋ชฉ์ ์ ๋ฒ์ ๊ตฌ๋ฌธ์ ๋ง๋๋ ๊ฒ์ ๋ํ ๋ ผ์๊ฐ ์์์ง๋ง ๋ฐ๊ฐ๋ฐฉ ๋ฐ ํ์ ๋ฒ์๊ฐ ํฌํจ๋ ๊ฐ๋ฅ์ฑ์ด ์์ผ๋ฏ๋ก ํด๋น ๊ตฌ๋ฌธ์ด ํ์ํ์ง ์์ ์๋ ์์ต๋๋ค. ์ฌ์ฉ ์ฌ๋ก์ 99.9999%.
๋๋ ์ด ํ ๋ก ์ ์ต๋ํ ํํํ๋ ค๊ณ ๋ ธ๋ ฅํ์ต๋๋ค. ๋ด๊ฐ ์์ ์ ์ ์ ํ๊ฒ ํํํ์ง ๋ชปํ๋ค๊ณ ์๊ฐ๋๋ฉด ์๋ ค์ฃผ์๋ฉด ์ ๋ฐ์ดํธํ๊ฒ ์ต๋๋ค.
@Xaerox ํ๋ฅญํ ์์ฝ์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค.
์์ค๊ฐ ...
ํจํด ์ผ์น์์ ์ ๊ตฌ๋ฌธ(์: ..=
)์ผ๋ก ๊ฒฐ์ ๋๋ฉด ์๋์ผ๋ก ๋ณํํ๋ ๋๊ตฌ(rustfmt ํ๋ฌ๊ทธ์ธ์ผ ์ ์์)๊ฐ ์์ ์ ์์ต๋๋ค.
๊ทธ๋ ๊ฒ ํ๋ฉด "์์ ๋ฐฉ์์ผ๋ก ์์ฑ๋ ๋ชจ๋ ์ฝ๋"์ ์ํด ๋ณด๋ฅ๋์ง ์์ต๋๋ค.
๊ทธ๋ฌ๋ ํ๋ก์ ํธ ์์ฑ์์ ์๋์ ๋ฐ๋ผ ํธ์ถํด์ผ ํ๋ฉฐ ๋ชจ๋ ๋
น ๋งค์ฒด์ ์๋ฆผ/ํค๋๋ผ์ธ์ด ์์ด์ผ ๋ชจ๋ ์ฌ๋์ด ๋ณ๊ฒฝ ์ฌํญ์ ์ ์ ์์ต๋๋ค.
๊ทธ๋ฐ ๊ฒ๋ค์ ๊ฐ์ง๊ณ ์๋ก์ด ๊ตฌ๋ฌธ์ ์ผ์นํ๋ ํจํด์์ ...
๊ตฌ๋ฌธ์ ๋ณ๊ฒฝํ๋ ๊ฒ์ ๋ฌธ์ ๊ฐ ๋์ง ์๋๋ค๊ณ ์๊ฐํฉ๋๋ค.
๊ตฌ๋ฌธ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ํ ์ ์๋ ํ ๊ฐ์ง๋ @clarcharr์ด ์ ์ํ ๋๋ก ์๊ฐ ํฉ๋๋ค. ์ด๊ฒ์ ์ต์ํ ์ฌ๋๋ค์ ์ฐจ๋จ ํด์ ํฉ๋๋ค.
inclusive
ํจ์๋ฅผ ์ถ๊ฐํ ์๋ ์์ต๋๋ค( std::range
๋๋ ์ ์ฃผ๊ณก์๋ ๊ฐ๋ฅ). ์ด๊ฒ์ ์ธ์ ๊ฐ ์ผ๋ฅ ๊ตฌ๋ฌธ์ ๊ฐ๋ ๊ฒ์ ๋ฐฐ์ ํ์ง๋ ์์ง๋ง ์ง๊ธ RangeInclusive๋ฅผ ๊ตฌ์ฑํ๋ ๊ฒ์ด ํจ์ฌ ๋ ํธ๋ฆฌํฉ๋๋ค.
๊ทธ๋ฌ๋ ์ด๊ฒ๋ค์ ๋ชจ๋ libs ๊ฒฐ์ ์ฒ๋ผ ๋ณด์ด๊ธฐ ๋๋ฌธ์ lang ํ์ด ์ด๋ฌํ ํญ๋ชฉ์ ์์ ํ/์ถ๊ฐํ๊ธฐ๋ก ๊ฒฐ์ ํ ๊ดํ ๊ถ์ด ์๋์ง ๋ชจ๋ฅด๊ฒ ์ต๋๋ค.
๋๋ ๊ฐ์ธ์ ์ผ๋ก ๋ณํํ๋ ๊ฒ์ ์ ํธ RangeInclusive
์ด์๋ ๋ฌด์ธ๊ฐ์ ์์ฒด Empty
๋ณํ์ ํํ๊ฒ IntoIter
๋ณํ์๋ค. ์๋์ผ๋ก Empty { at }
์์ด ๋น ๋ฒ์๋ฅผ ๊ตฌ์ฑํ๋ ๊ฒ์ด ๋ณธ์ง์ ์ผ๋ก ๋ถ๊ฐ๋ฅํ๋ค๋ ๊ฒ์ ๊ณ ๋ คํ๋ ๊ฒ์ด ๋ ํฉ๋ฆฌ์ ์
๋๋ค.
๋๋ ๋ด๊ฐ ์ธ๊ธํ ํ ๊ฐ์ง ๊ฒฝ์ฐ์์ MAX
์ MIN
๋ฅผ ๊ตํํ์ญ์์ค. ์ด๋ RangeInclusive
์ ๊ด๋ จ๋ ๋ณด๋ค ์ผ๋ฐ์ ์ธ ์ฝ๋๋ฅผ ์์ฑํ๋ ๊ฒ์ ์ด๋ ต๊ฒ ๋ง๋ค์ง๋ง ๋ฌธ์ ์ ๋ํ ํฉ๋ฆฌ์ ์ธ ํด๊ฒฐ์ฑ
์ฒ๋ผ ๋ณด์
๋๋ค.
๋ฌด์จ ์ผ์ด ์ผ์ด๋๋ ์ ๋ ๊ตฌ๋ฌธ ๋ฌธ์ ์ ์๊ด์์ด ์กด์ฌํ ํ์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์ ํ์ ์์ ํํ๋ ๊ฒ์ ๋งค์ฐ ์ง์งํฉ๋๋ค. ์ด๋ฅผ ํตํด ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ํฌ๊ด์ ์ธ ๋ฒ์๋ก ์ฌ๋ผ์ด์ฑํ ์ ์๋ ์์ ์ ์ธ ์ฝ๋๋ฅผ ์์ฑํ ์ ์์ผ๋ฏ๋ก ๊ตฌ๋ฌธ์ด ์์ ํ๋ ๋ ์ฌ๋๋ค์ ์ด๋ฏธ ์ ํ์ ์ฌ์ฉํ๋ ์ฝ๋๋ฅผ ๊ตฌํํ์ต๋๋ค. ์ด์ ๋๋ฌธ์ ๊ตฌ๋ฌธ ๋ฐ ์ ํ์ด ๋ค๋ฅธ ๊ธฐ๋ฅ ํ๋๊ทธ ์๋์ ์์ต๋๋ค.
@scottmcm ์ด ์์ ์์ ์๋ง๋ ๋ณ๋์ ์ค๋ ๋์ฌ์ผ ํ๋ค๋ ๋ฐ ๋์ํฉ๋๋ค.
๊ตฌ๋ฌธ ํ ๋ก ์ ๊ณ์ ์งํํ๊ธฐ ์ํด ๋ด๊ฐ ์ ํธํ๋ ๊ฒฝ๋ก๋ฅผ ์ ๊ณตํ ๊ฒ์ ๋๋ค.
์ ๋ ..=
๊ตฌ๋ฌธ์ ๊ฐ์ฅ ์ข์ํ๋ฏ๋ก ์ด ๊ตฌ๋ฌธ ์คํ์ ํจํด ์ผ์น์์ ...
์ ๋์ผํ๊ณ ํจํด ์ผ์น ์ธ๋ถ์์ InclusiveRange๋ก ์ถ๊ฐํด์ผ ํ๋ค๊ณ ์๊ฐํฉ๋๋ค. ๊ทธ๋ฐ ๋ค์ ์ธ์ด๋ฅผ ์ผ๊ด๋๊ฒ ์ ์งํ๊ธฐ ์ํด ๊ณต์ง ๋ฐ ์๋ํ๋ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ์ฌ ํจํด์ ..=
๊ตฌ๋ฌธ์ผ๋ก ์ฌ์ฉ์์ ์ฝ๋๋ฅผ ๋ง์ด๊ทธ๋ ์ด์
ํ๋ ค๊ณ ์๋ํด์ผ ํฉ๋๋ค. ...
์์ ์ถฉ๋ถํ ์ฌ์ฉ์๋ฅผ ๋ง์ด๊ทธ๋ ์ด์
ํ๋ค๊ณ ์๊ฐ๋๋ฉด ์ปดํ์ผ๋ฌ ๊ฒฝ๊ณ ๋ฅผ ์ฌ์ฉํ๊ณ ๊ฒฐ๊ตญ(์ง๊ธ๋ถํฐ ๋ช ๋
ํ์๋) ์ปดํ์ผ๋ฌ ์ค๋ฅ๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค.
๋ด ์ ์์ด ์ ๊ณต๋ ์ง 24์ผ์ด ์ง๋ฌ์ง๋ง ์๋ฌด๋ฐ ์ฝ๋ฉํธ๋ ์ ๊ณต๋์ง ์์์ต๋๋ค. ๊ทธ ๊ณํ์ ๊ณ์ ์งํํด์ผ ํฉ๋๊น?
ํธ์ง : ๋ชจ๋ฐ์ผ์์ ๋๋ ์์ง ์๊ฐ๋ฝ์ ๋ณด์ง ๋ชปํ๊ธฐ ๋๋ฌธ์ ๋ฐ๋ ์๊ฒฌ์ด ์๋ค๋ ๊ฒ์ ๊นจ๋ซ์ง ๋ชปํ์ต๋๋ค.
@Xaerox ์ ๋ ๊ทธ๋ ๊ฒ ์๊ฐํ์ง ์์ต๋๋ค. ๋๋ ๋นํํ๋ ๊ฒ์ ๋์ํ์ง ์๋ ...
์ฐฌ์ฑ ..=
์ด๋ฏธ์ด ์ค๋ ๋์ ๊ฒ์ ํ ์ด์ ์ ๋ํ ์ข์ ์ ํ์
๋๋ค. ๊ฐ์ ์์ด๋์ด๊ฐ ์ด๋ฏธ ์ ์๋๊ณ ๋
ผ์๋์๊ธฐ ๋๋ฌธ์ ๊ทํ์ ๊ตฌ์ฒด์ ์ธ ์ ์์ ๋ต๋ณํ์ง ์์์ต๋๋ค. ์ฌ๊ธฐ์ ๋ถ๋ช
ํ ๊ฒ์ ์ฐ๋ฆฌ๊ฐ ํฉ์๋ฅผ ์ด๋ฃจ์ง ๋ชปํ๋ค๋ ๊ฒ๋ฟ์
๋๋ค. ๋ง์ ๋ถ๋ค์ด ํ ๋ก ์ผ๋ก ์ธํด ํผ๋ก๊ฐ์ ๋๋ผ์
จ์ ๊ฑฐ๋ผ ์๊ฐํฉ๋๋ค.
ํธ์ง์ด : ๋ ๊ตฌ์ฒด์ ๋ฅผํ๊ธฐ ์ํด, ๋ด๊ฐ ๋ ์ด์ ์ฌ์ฉํ์ง ์์ผ๋ ค๋ ...
์ฐฌ์ฑ ..=
์ด์ ๋
..=
์ข์ํ๋๋ผ๋ ์์ ์์ ํฌ๊ด์ ์ธ ๋ฒ์ ํํ์์ ์ป๋ ๊ฒ๋ง์ผ๋ก๋ ์ฌ์ฉ ์ค๋จ ์ฃผ๊ธฐ์ ๊ฐ์น๊ฐ ์๋ค๊ณ ์๊ฐํ์ง ์์ต๋๋ค...=
๋ง์์ ๋ค์ง ์์ต๋๋ค . ๋ช
ํํ์ง ์๊ณ ๋ถ๋ถ๋ช
ํฉ๋๋ค. ํ๋์ ์ค๋ฅ๋ก ์ธํด ์ค๋ฅ๊ฐ ๋ฐ์ํ ๊ฐ๋ฅ์ฑ์ด ์ ๋ค๋ ์ฅ์ ์ด ์์ง๋ง ์ฌ์ฉ์๊ฐ ์ฒ์์ผ๋ก ๋ณด๊ณ ์๋ ๋ด์ฉ์ ์ ์ ์๋ค๋ ์๋ฏธ๋ ์๋๋๋ค.(์ด ๋๊ธ์ ์์ฑํ๋ ๋์ ๊ด์ ์ด ์ฝ๊ฐ ๋ฐ๋์์ต๋๋ค. ๋ค๋ฅธ ์ฌ๋๋ค์ด ๋ด ์๊ฐ ๊ณผ์ ๊ณผ ๋ด๊ฐ ๋ด๋ฆฐ ๊ฒฐ๋ก ์ ๋๋ฌํ ์ด์ ๋ฅผ ๋ณผ ์ ์๋๋ก ๋ชจ๋ ๊ฒ์ ๊ทธ๋๋ก ๋๊ธฐ๋ก ๊ฒฐ์ ํ์ต๋๋ค.)
๊ทธ๋ฌํ ๊ฒฝํ์ด ์๊ธฐ ๋๋ฌธ์ ์ฌ์ฉ ์ค๋จ ๋น์ฉ์ ๋ํด ์ธ๊ธํ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ๋๋ ์ฌ์ ํ ..=
ํฉ๋๋ค.
ํน์ ์์ ์์ ์ฐ๋ฆฌ๋ ์ฌ์ฉ์์๊ฒ ๋ฌด์ธ๊ฐ๋ฅผ ๋ฐฐ์ฐ๋๋ก ๊ธฐ๊บผ์ด ์์ฒญํด์ผ ํ๋ค๊ณ ์๊ฐํฉ๋๋ค. ํ๋ก๊ทธ๋๋ฐ ์ ์ฒด๋ ๋ฐฐ์์ผ ํ ๋ถ๋ถ์ด๋ฉฐ, ์ผ๋ฐ์ ์ผ๋ก ์ ๋ฌธํ๋ ๊ตฌ๋ฌธ์ ํญ์ ์๋ฏธ๋ก ์ ์ฝ๊ฐ์ ๋น์ฉ์ด ๋ญ๋๋ค. ๋๋ ์ฌ๋๋ค์ด ์ธ๋ป ๋ณด๊ธฐ์ ๊ตฌ๋ฌธ์ ์ธ์ํ ๊ฒ์ด๋ผ๊ณ ๊ธฐ๋ํ์ง ์์ต๋๋ค. ..
๋ ์ด์ ๊ด๋ จํ์ฌ ๋์์ง ์์ต๋๋ค.
๊ทธ๋ฌ๋ ํน์ ๊ตฌ๋ฌธ์ด ๋๋ฌด ๋ง์ผ๋ฉด ์ธ์ด๊ฐ Rust๊ฐ ์ํ๋ ๊ฒ๋ณด๋ค ๋ ๋ธ๋ ์ธํฝ์ ๊ฐ๊น๊ฒ ๋ณด์ผ ์ ์์ต๋๋ค. ๋ฐ๋ผ์ ์ฐ๋ฆฌ๋ ํน๋ณํ ๊ตฌ๋ฌธ์ผ๋ก ๋ณํํ๊ธฐ๋ก ์ ํํ ๊ฒฝ์ฐ๊ฐ ์ค์ ๋ก ๊ฐ์น๊ฐ ์์ ๋งํผ ์ถฉ๋ถํ ์ผ๋ฐ์ ์ด๋ผ๋ ์ ์ ์ฃผ์ํด์ผ ํฉ๋๋ค. ์์งํ ๋งํด์ ์ง๊ธ ๋ด๊ฐ ์ด๊ฒ์ ํ์ดํํ ์ง๊ธ ๋๋ ์ด ์ผ์ด์ค๊ฐ ๊ทธ๋งํ ๊ฐ์น๊ฐ ์๋์ง ์์ ํ ํ์ ํ์ง ๋ชปํฉ๋๋ค. ํฌ๊ด์ ์ธ ๋ฒ์์ ํ์์ฑ์ ๊ตฌ๋ฌธ์ ๋ณด์ฆํ ๋งํผ ๋์ง ์์ต๋๋ค.
๊ทธ๋ฌ๋ ๋ถ์ผ์น๋ ์ฌ์ ํ ๋๋ฅผ ๊ดด๋กญํ๋ค. ํฌ๊ด์ ์ธ ๊ธฐ๋ฅ๊ณผ ํจํด ์ผ์น์ ...
๊ฐ ์๋ค๋ ๊ฒ์ ์์ด์์ ํ์๊ณผ ํ์์ด ๋ชจ๋ ์๋ ๊ฒ์ฒ๋ผ ๋๊ปด์ง๋๋ค. ํ์คํํ ๊ธฐํ๊ฐ ์์ ๋ ์ ์ผ๋ถ๊ฐ ๊ทธ๋ ๊ฒ ํด์ผ ํ๋ค๊ณ ๋๋๋๋ค. ๊ทธ๋ฌ๋ ๊ทธ๋ฌํ ๋ณ๊ฒฝ์ ์ํํ๋ ๋ฐ์๋ ์ค์ ๋ฌผ๋ฅ ๋ฌธ์ ๋ ์์ต๋๋ค. ์ฐ๋ฆฌ๊ฐ Rust 2.0์ ๋์์ธํ๊ฒ ๋๋ค๋ฉด(๋ฏธ์น ์ง์ผ์ง๋ ๋ชจ๋ฆ
๋๋ค. ์ ๋ ์ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค) ์๋ง๋ ์ด๊ฒ์ ๋ค์ ์ดํด๋ด์ผ ํ ๊ฒ์
๋๋ค.
์ ๋ ํ์ฌ ํจํด ๋งค์นญ ์ธ๋ถ์ ์ธ์คํด์ค์ inclusive
ํจ์๋ฅผ ์ฌ์ฉํ๊ณ ํจํด ๋งค์นญ์ ...
๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ ์ง์ํฉ๋๋ค.
@withoutboats
๋ ์ด์ ์ฌ์ฉํ์ง ์๋ ๊ฒฝ์ฐ C++์ ๊ฐ์ ๋ชจ๋ (๋ค์) ์๋ชป๋ ๊ฒฐ์ ์ ์กฐํฉ์ผ๋ก ๋๋ฉ๋๋ค. ์ด๊ฒ์ ์ํฉ์ด ๊ฐ๋ฅํ ํ ์ผ๊ด์ฑ์ด ์๊ธฐ ๋๋ฌธ์ ์ด๋ณด์๊ฐ ๋ ๋ง์ด ๋ฐฐ์ฐ๋๋ก ๊ฐ์ํฉ๋๋ค.
๋ฐ๋ผ์ ๋๋ก๋ ๋ ๋์ ์๋ฃจ์
์ ์ ๊ณตํ๊ธฐ ์ํด ๋ ์ด์ ์ฌ์ฉํ์ง ์๋ ๊ฒ์ด ์ข์ต๋๋ค.
๊ทธ๋ ๋ค๊ณ ํด์ ์ฌ์ฉ์๊ฐ ์ฒ์ ๋ณด๋ ๊ฒ์ด ๋ฌด์์ ๋ณด๊ณ ์๋์ง ์ ์ ์๋ค๋ ์๋ฏธ๋ ์๋๋๋ค.
์ด๊ฒ์ ๋ชจ๋ ๊ตฌ๋ฌธ์ ๊ฒฝ์ฐ์
๋๋ค. ์ฐ๋ฆฌ(Rust๋ฅผ ์๋)๋ Rust ์ฝ๋๊ฐ ๋ช
๋ฐฑํด ๋ณด์ด์ง๋ง ๋ค๋ฅธ ์ธ์ด์์ Rust๋ก ์ค๋ ์ฌ๋์ ๋๊ตฌ๋ ๊ตฌ๋ฌธ์ ์์ฃผ ๊ฒ์ํด์ผ ํ๊ธฐ ๋๋ฌธ์ ์ด๋ฌํ ํธ๊ฒฌ์ ๊ฐ์ง๊ณ ์์ต๋๋ค. ..=
๋๋ ...
๋๋ ํฌํจ ๋ฒ์์ ๋ํ ๋ค๋ฅธ ๊ตฌ๋ฌธ์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ๋ณ๊ฒฝ๋์ง ์์ต๋๋ค. ์๋ฅผ ๋ค์ด ๋ค๋ฅธ ์ธ์ด๋ ๋ฐฐํ์ ๋ฒ์์ ๋ํด ...
๋ฅผ ์ฌ์ฉํ๋ฏ๋ก ์ด์จ๋ ๊ฒ์ํด์ผ ํ๊ธฐ ๋๋ฌธ์
๋๋ค. .
๋ช
๋ฐฑํ ๊ธฐ๋ฅ๋ง ์๊ฐํ๋ ๊ฒ์ด ์ฐ๋ฆฌ์ ๋ชฉํ๊ฐ ๋์ด์๋ ์ ๋ฉ๋๋ค.
๋ช
๋ฐฑํด ๋ณด์ด๋ ๊ธฐ๋ฅ๋ง ๊ฐ๊ณ ์ถ๋ค๋ฉด Rust์ ์๋ ๊ธฐ์กด ๊ธฐ๋ฅ์ ๋๋ถ๋ถ์ ๊ฐ์ง ์ ์์ต๋๋ค. ์ด๋ณด์ ์ด์จ๋ ๋ฌธ์ ๋ด์ผ ๋ฌด์จ ์ผ์ด ๊ทธ๊ฒ์ ๋ํด ๋๋ฌด ์๋ชป? ๋ฐ์ฌ๋ ์ข์ต๋๋ค!
@withoutboats๊ฐ ๋งํ๋ฏ์ด ์ฐ๋ฆฌ ์ค ๋ง์ ์ฌ๋๋ค์ด ์ด ํ ๋ก ์ ์ง์ณค์ต๋๋ค. ๋๋ ์ ์ ๋์ ๊ทธ๊ฒ์ ๋ฐ์ผ๋ก ์ํ ์์ต๋๋ค. ์ฆ, ๋๋ ๋ค์ ์ฝ๊ณ (์์ฝ @Xaerox์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค!) ์ฌ๊ธฐ์์ ๋ด ์๊ฐ์ ๋ค์ ๋ฐฉ๋ฌธํ๋ ๋ฐ ์๊ฐ์ด ๊ฑธ๋ ธ์ต๋๋ค.
IMO, ์ง๊ธ ๊ฐ์ฅ ์ค์ํ ๋ฌธ์ ๋ ์ฐ๋ฆฌ๊ฐ ์ ๊ณตํ๋ ๊ตฌ๋ฌธ์ ๋ถ์์ ํ ์กฐํฉ์
๋๋ค . ํจํด์ ๊ฒฝ์ฐ ..
...
, ํํ์์ ๊ฒฝ์ฐ ..
์
๋๋ค. ์ด ๊ตฌ๋ฌธ ์์ ..
๊ฐ ํจํด์์ ์๋ํ๊ณ ...
๊ฐ ํํ์์์ ์๋ํ ๊ฒ์ด๋ผ๊ณ ์์ํ๋๋ก ๊ฐ๋ ฅํ๊ฒ ์ ๋ํฉ๋๋ค. ๊ทธ๋ฌ๋ ์ค์ ๋ก๋ ๊ทธ๋ ์ง ์์ต๋๋ค. ๋๋ ์ด๊ฒ์ด ์ฅ๊ธฐ์ ์ผ๋ก ์ง์ ๊ฐ๋ฅํ ๋์์ธ์ด ์๋๋ผ๊ณ ์๊ฐํ๊ณ ์ ๋ง๋ก ์์ ํ๊ณ ์ถ์ต๋๋ค.
๋ํ ๋ ์ข ๋ฅ์ ๋ฒ์์ ๋ํ ๊ตฌ๋ฌธ์ ์ ๊ณตํ๊ธฐ ๋๋ฌธ์ ๊ณ์ ์ ๊ณตํ๋ ๊ฒ์ด ๊ฐ์ฅ ์ข์ ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. ๊ทธ๋ฌ๋ฉด ๋ค์๊ณผ ๊ฐ์ ๋ช ๊ฐ์ง ์ต์ ์ด ์ ๊ณต๋ฉ๋๋ค.
ํํ์์์ ...
๋ฅผ ์์ ํํ๊ณ ํจํด์ ..
๋ฅผ ์ถ๊ฐํฉ๋๋ค. ์ด๊ฒ์ ๊ฐ์ฅ ๊ณ ํต์ค๋ฌ์ด ๋ณ๊ฒฝ ์ฌํญ์ด์ง๋ง, ๊ฐ๋ณ ์ค๋ฅ์ ๊ด๋ จํ์ฌ ์ ๋
ผ์๋ ๋จ์ ์ด ์์ต๋๋ค. ๊ทธ๋ฌ๋ ๋ค๋ฅธ ์ธ์ด์๋ ์ด๋ฌํ ์กฐํฉ์ด ์์ผ๋ฉฐ ๋ด๊ฐ ์๋ ํ ๊ทธ๋ฌํ ์ค๋ฅ๋ก ์ธํด ์ฌ๊ฐํ ๊ณ ํต์ ๊ฒช์ง ์์์ต๋๋ค.
๋น์ถ์ฒ ...
ํจํด๊ณผ ํํ์ ์ถ๊ฐ ..=
๋ชจ๋ํ๊ณ , ์ถ๊ฐ ..
ํจํด. ์์ ๋จ์ ์ ํด๊ฒฐํ๊ณ ๋ ๊ณ ํต์ค๋ฝ๊ณ (์ง์ ์ค๋จ์ผ๋ก ์ธํด) ๋ฏธ๋์ ๋ค๋ฅธ ์ข
๋ฅ์ ๋ฒ์(์: ์ผ์ชฝ ๋
์ )์ ๋ํ ๋ฌธ์ ์ฝ๋๋ค.
์ด ์์ ์์ ๋๋ ์ฃผ๋ก ํ ๋ก ์ ๋ค์ ํ๊ณ ์์ผ๋ฉฐ ์์งํ ๋งํด์ ์ด ์์ ์์ ๋ ์ด์ ํ ๋ง์ด ์๋ค๊ณ ์๊ฐํฉ๋๋ค. ๋๋ ์ฐ๋ฆฌ๊ฐ ์ ์ถฉ์ ์ ๋๋ฌ๋๊ณ ํ๊ฐ๋ฅผ ์ํํ๊ณ ๊ฒฐ์ ์ ๋๋ฌํ๊ธฐ ์ํด lang ํ์ด ํ์ํ๋ค๊ณ ์๊ฐํฉ๋๋ค. ๊ทธ๋ฌ๋ ๋ด ์๊ฒฌ์ ์ฃผ์ ์์ ์ ์ฌ๊ธฐ์์ ๋ญ๊ฐ ๋ณ๊ฒฝํด์ผ ํ๋ค๊ณ ์๊ฐํ๋ ์ด์ (๊ทธ๋ฆฌ๊ณ inclusive
์ถ๊ฐํ๋ ๊ฒ๋ง์ผ๋ก๋ ์ถฉ๋ถํ์ง ์์ ์ด์ , IMO)์ ๋ํ ์ด๊ธฐ ์์ ์
๋๋ค.
๊ทธ๋ฌ๋ ๋ค๋ฅธ ์ธ์ด์๋ ์ด๋ฌํ ์กฐํฉ์ด ์์ผ๋ฉฐ ๋ด๊ฐ ์๋ ํ ๊ทธ๋ฌํ ์ค๋ฅ๋ก ์ธํด ์ฌ๊ฐํ ๊ณ ํต์ ๊ฒช์ง ์์์ต๋๋ค.
์ฌ๊ธฐ์์ ์ ํ ํธํฅ์ด ๊ฑฑ์ ๋ฉ๋๋ค. ๋ฌธ์ ๊ฐ ๊ฒฝ๋ฏธํ์ง ๋๋ ์ฐ๋ฆฌ์ ์ฃผ์๋ฅผ ๊ฑฐ์ ๋์ง ๋ชปํ๋์ง ์ฌ๋ถ๋ฅผ ํ๋จํ ์ ๋ขฐํ ์ ์๋ ๋ฐฉ๋ฒ์ด ์์ต๋๋ค.
๋ํ, ...
๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ Rust์ ๋์์ธ ์ฒ ํ๊ณผ ์๋ก์ด ๋ชจ๋ฒ ์ฌ๋ก์ "์์ถฉ ๊ด๊ณ๊ฐ ๋๋ฌด ์ฌ๊ฐํ์ง ์์ ํ ๋ฐ์ด์ ํผํ์ญ์์ค"๋ผ๋ ์ธก๋ฉด์ ์๋ฐฐ๋๋ ๊ฒ์ฒ๋ผ ๋๊ปด์ง๋๋ค. (์: bool
์ฌ์ฉํ๋ ๊ฒ๋ณด๋ค ์๋ก์ด enum
์ ํ์ ์์ฑํ์ฌ ํจ์ ๋งค๊ฐ๋ณ์๋ฅผ ํผํฉํ๋ ๊ฒ์ด ๋ ์ด๋ ต์ต๋๋ค.)
์๋ฅผ ๋ค์ด, C๋ ์ธ์ด์ while let
๊ฐ ์๋ ๊ฒฝ์ฐ if
๋ฌธ์ ๋์
ํ๋ ๊ฒ์ด ์ ์ฉํ๋ค๋ ๊ฒ์ ์ฆ๋ช
ํ์ง๋ง ==
์ ์๋ฏธํ ๋ =
๋ฅผ ์
๋ ฅํ๋ ๊ฒ์ผ๋ก ์ธ์๋์์ต๋๋ค. ==
๋ ์ ์ผํ ๋์์ด ๋นํน์ดํ๊ฒ ๋ชป์๊ธด ์ํฉ์ด ์กด์ฌํ๋ ๊ฒฝ์ฐ์๋ Python๊ณผ ๊ฐ์ ์ธ์ด๊ฐ ์ด๋ฅผ ๊ฑฐ๋ถํ๋ ์กฑ์๋ก ์ถฉ๋ถํฉ๋๋ค.
๋ค๋ฅธ ๋ฐฉํฅ์ผ๋ก ๊ฐ๋ณด๋ฉด ์ค์ ๋ก ์ผ์ฃผ์ผ ์ ์ฏค ์ฝ๋ฉ์ ์ง์ณค์ ๋ Clippy๊ฐ ์ด๋ฐ ๊ฒฝ์ฐ๋ฅผ ์ก์์ต๋๋ค.
foo == bar; // This should be `foo = bar;`
...์ฌ๊ธฐ์ ๊ฑฑ์ ๋๋ "ํค๋ฅผ ๋๋ฌด ๋ง์ด ๋๋ ๋ค" ์ค์์ ์๋ฒฝํ ์์ธ ๊ฒ ๊ฐ์ต๋๋ค... ๊ทธ๋ฆฌ๊ณ " ==
๋ ํจ๊ณผ๊ฐ ์์ต๋๋ค"์ ๋ฌ๋ฆฌ ..
๋ ...
๋ํด ๋ณดํธ๋ผ๊ธฐ ์ฒ๋ฆฌํ๋ ์ข์ ๋ฐฉ๋ฒ์ด ์์ต๋๋ค.
@ssokolow ..=
๋ ๊ด์ฐฎ์ต๋๋ค. ์ฌ์ฉ ์ค๋จ์ด ๊ทธ๋ ๊ฒ ๊ณ ํต์ค๋ฌ์ธ ๊ฒ์ด๋ผ๊ณ ์๊ฐํ์ง ์์ผ๋ฉฐ ๋งค์ฐ ์ฌ์ด ์๋ ์์ ์
๋๋ค. ๋๋ถ๋ถ ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ณ ์ถ์ต๋๋ค.
๋๋ ์๋ง ..
/ ...
(์ด๋ฏธ ์ผ๊ฐ์ ๊ตฌํ๋จ) ์์ ํ๋ก ์ด ์ ์์ต๋๋ค. ๋๋ ์กด์ฌํ๋ ์ธ์ด๊ฐ ์ด๊ฒ์ด ์๋ํ ๊ฒ์ด๋ผ๊ณ ์ ์ํ๋ @aturon์ ๋์ํฉ๋๋ค.
๋ด๊ฐ ๋งํ๋ฏ์ด, ๋๋ Rust-lang/rfcs#1980์ด ๊ตฌ๋ฌธ ๋ ผ์ ์์ด ํต๊ณผํ ๋ libstd ์ ํ์ ์์ ํํ๊ณ ์ถ์ต๋๋ค.
@aturon์ด ์ง์ ํ ๊ฒ๊ณผ ํจ๊ป ์ด ๊ตฌ๋ฌธ๊ณผ ๋ฐฐํ์ ๋ฒ์ ๊ตฌ๋ฌธ ๋ชจ๋์ ๋ํ ์ถ์ ๋ฌธ์ ๋ฅผ ๋ณํฉํ๋ ๊ฒ์ด ์ ์ฉํ ์ ์์ต๋๊น? ์๋ง๋ ์ ํ์ ๋ํด ๋ณ๋์ ์ถ์ ๋ฌธ์ ๋ฅผ ๋ง๋ค๊ณ ๊ตฌ๋ฌธ ์ ์ ์ ํ์ ์์ ํํ๋ ๋ฐ ์ฌ์ฉํ์ญ์์ค.
๋๋ lang ํ ํ ๋ก ์ ์ํด ๋ค์ ์ง๋ช ํ๊ณ ์์ต๋๋ค. ์ด ์์ ์์ ์๋นํ ์๋ก์ด ์์ด๋์ด๋ ์ ์ถฉ์์ด ๋ฐ์ํ ๊ฐ๋ฅ์ฑ์ ๊ฑฐ์ ์๋ค๊ณ ์๊ฐํฉ๋๋ค. ์ฐ๋ฆฌ๋ ์ ์๋ ํธ๋ ์ด๋์คํ์ ๋ํ ๊ฒฐ์ ์ ๋ด๋ ค์ผ ํฉ๋๋ค.
2017๋ 5์ 18์ผ ์ค์ 9:55:30 PDT, Aaron Turon [email protected] ์ ๋ค์๊ณผ ๊ฐ์ด ์ผ์ต๋๋ค.
๋๋ lang ํ ํ ๋ก ์ ์ํด ๋ค์ ์ง๋ช ํ๊ณ ์์ต๋๋ค. ๋๋ ๊ทธ๊ฒ์ด ๋งค์ฐ ๊ฐ๋ฅ์ฑ์ด ์๋ค๊ณ ์๊ฐํ๋ค.
์ด ์์ ์์ ์๋นํ ์๋ก์ด ์์ด๋์ด๋ ์ ์ถฉ์์ด ๋ฐ์ํ๊ฒ ๋ ๊ฒ์ ๋๋ค.
๊ฐ๋ฆฌํค๋ค. ์ฐ๋ฆฌ๋ ์ง๊ธ๊น์ง์ ํธ๋ ์ด๋์คํ์ ๋ํ ๊ฒฐ์ ์ ๋ด๋ ค์ผ ํฉ๋๋ค.
๋ฐฐ์น.
๋ค์ ์ฃผ ํ์ ๋๋ฌธ์ ํ์์ ๋๊ฐ๋ ค๊ณ ํฉ๋๋ค. ๊ฒฝ์ฐ ์ด๊ฒ์ ๋ค์ ์ฃผ ํ์์์ ๋
ผ์๋ฉ๋๋ค, ๋ด๊ฐ ์๋ ๋ค๋ฅธ ์๋ฃจ์
์ ๋ํ ๋ด ์ง์์ ์์ฑ ๊ฒ์ด๋ค ...
์ฌ๋ถ, ..=
, inclusive
, ๋๋ ๊ธฐํ.
์ฐ๋ฆฌ๊ฐ ๊ฑฐ๊ธฐ์ ์๋ ๋์ rest/spread ๊ตฌ๋ฌธ์ ๋ํด ๋
ผ์ํ ๊ฐ์น๊ฐ ์์ต๋๋ค.
๋๋ ๋จ๋
๋ฒ์์ ..
, ํฌ๊ด์ ๋ฒ์์ ...
, ํด์/ํ์ฐ์ ....
์ ํฌํํฉ๋๋ค.
take_range(..max); // exclusive range
take_range(...max); // inclusive range
take_multiple_args(....tuple); // spread
if let 0..10 = get_num() {} // exclusive range pattern
if let 0...9 = get_num() {} // inclusive range pattern
if let [first, ....rest] = get_slice() {} // rest pattern
์ ๋ ๋ค์ ๋ ๊ฐ์ง ์ด์ ๋ก ๋๋จธ์ง ์ฌ๋ผ์ด์ค์ ๋ํด ...
์ ํฌํํฉ๋๋ค.
์ฌ๋๋ค์ ์ด๋ฏธ ๊ฐ๋ฅ์ฑ์ ์ต์ ...
์ปคํผ ์คํฌ๋ฆฝํธ์ ๊ฐ์ ์ธ์ด์์ "ํด์"์ ์๋ฏธํ๋ค (์ปคํผ ์คํฌ๋ฆฝํธ๊ฐ ์ฌ์ฉ rest...
๊ฐ๋ณ ์ธ์์ ํตํ๋ฅผ "ํ์๊ฐ"์ ๋ํ ๊ธฐ๋ฅ ์๋ช
์)์ ์์ด (์ฌ๋ฐ๋ฅธ ์ ๋ ์ฝ๋๋ฅผ ์ฌ์ฉํ์ฌ ์ฝ๋ ํฌ์ธํธ ์ฌ๋ถ์ ๊ด๊ณ์์ด ๋ง์นจํ 4๊ฐ๊ฐ ์๋๋ผ ์๋ต ๊ธฐํธ์ฒ๋ผ ๋ณด์ด๋ ์ธ ๊ฐ์ ๋ง์นจํ์
๋๋ค. ์ฌ๋๋ค์ ์ค์ํ๋ฅผ ์์ด๋ก "๋ ๋ง์ด ์์ง๋ง ํฐ ์๋ฆฌ๋ก ๋งํ๋ ๊ฒ์ด ์๋๋๋ค"๋ฅผ ๋๋ต์ ์ผ๋ก ์๋ฏธํ๋ ์ค์ํ๋ฅผ ์ ๋๋ก ์ดํดํ๊ณ ์์ต๋๋ค. ์ฌ์ฉ.)
๋ด๊ฐ Rust์ ๊ตฌ๋ฌธ์ ๋ํด ๋ญ๊ฐ๋ฅผ ๋์น๊ณ ์์ง ์๋ ํ, ๋ฒ์์๋ ..
๋ฐ ..=
๋ฅผ ์ฌ์ฉํ์ง๋ง ๋๋จธ์ง ์ฌ๋ผ์ด์ค์๋ ...
๋ฅผ ์ฌ์ฉํ๋ฉด ๋ชจ๋ ์ํฉ์์ ...
์
๋ ฅํ๋ค๋ ์๋ฏธ์
๋๋ค ..
๋ฅผ ์๋ฏธํ๊ฑฐ๋ ๊ทธ ๋ฐ๋์ ๊ฒฝ์ฐ ์ฌ์ ํ ์ปดํ์ผ ํ์ ์ค๋ฅ์
๋๋ค.
์ด๋ฅผ ์ํด ์ ๋ ๋ ๊ฐ์ง ๊ฐ์ ์ ํ๊ณ ์์ต๋๋ค.
๋๋จธ์ง ๊ตฌ๋ฌธ๋ง ์ฌ์ฉํ๋ ๊ฒ์(์ํ์ค ์์ถ ํด์ ์ปจํ
์คํธ ์ธ๋ถ์์) ์คํ๊ฐ ๋ฐ์ํ๊ธฐ ์ฌ์ด no-op์ผ๋ก ํ์ฉ๋์ง ์์ต๋๋ค. (์: for _ in ...rest
๋ ํ์ฉ๋๋ ๊ฒฝ์ฐ for _ in rest
์ ๋์ผํ์ง๋ง ์คํ๊ฐ ๊ฑฐ์ ํ์คํฉ๋๋ค.
ํ ๋นํ ํจํด์ผ๋ก ๊ฐ๋ฐฉํ ๋ฒ์๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ ์ ํจํ์ง ์์ต๋๋ค. (์: let [first, ..rest] =
๋ ์ ํจํ์ง ์์ต๋๋ค.)
@ssokolow ์ผ์ค ์ ์ ์ด๋ฏธ ํจํด์ ๋ฒ์๋ฅผ ์๋ฏธํ๋ฏ๋ก ๋๋จธ์ง ๊ตฌ๋ฌธ์ผ๋ก ๋ณ๊ฒฝํ๋ ์ฃผ์ ๋ณ๊ฒฝ ์ฌํญ์ด ๋ ๊ฒ์ ๋๋ค.
@phaux ํฌ์ธํธ. ์ด๋ค ์ด์ ์์์ธ์ง ์์ด๋ฒ๋ ธ์ต๋๋ค.
"๋ง์ฝ ์ฐ๋ฆฌ๊ฐ Rust 2.0์ ๋ง๋ ๋ค๋ฉด" ํ๊ทธ๋ฅผ ๋์ ์๋ ์์ต๋๋ค.
์ผ์ค ์ ์ ์ด๋ฏธ ํจํด์ ๋ฒ์๋ฅผ ์๋ฏธํ๋ฏ๋ก ๋๋จธ์ง ๊ตฌ๋ฌธ์ผ๋ก ๋ณ๊ฒฝํ๋ ์ฃผ์ ๋ณ๊ฒฝ ์ฌํญ์ด ๋ ๊ฒ์ ๋๋ค.
๊ทธ๋ฌ๋ ํจํด์ ...
๋ ์์ชฝ์ ํํ์์ด ์์ด์ผ ํ๋ค๊ณ ์๊ฐํฉ๋๋ค( a...b
). ๋ฐ๋ฉด ๋๋จธ์ง ๊ตฌ๋ฌธ์ ...
๋ฅผ ์ ๋์ฌ๋ก ์ฌ์ฉํฉ๋๋ค. ์๋์?
lang ํ์ ์ค๋ ํ์์์ ์ด ๊ธฐ๋ฅ์ ๋ํด ๋ค์ ๋ ผ์ํ๊ณ ๋๋ต ๋ค์๊ณผ ๊ฐ์ ๋งคํธ๋ฆญ์ค์ ๋๋ฌํ์ต๋๋ค.
ํจํด์์ ...
๋ฅผ ์ง์ํ๊ณ ํํ์์์ ..
ํ๋ ๊ฒ์ ์ง์งํ ์ ์๋ ๋์์ธ์
๋๋ค. ๊ทธ๊ฒ์ ์ฌ์ฉ์๊ฐ ๊ตฌ๋ฌธ์ด ์๋ํ์ง ์์ ๊ฒ์ด๋ผ๊ณ ๊ธฐ๋ํ๊ฒ ๋ง๋ญ๋๋ค.
...
๋ฐ ..
๋ฅผ ๋ ์์น์ ๋ชจ๋ ํ์ฉํ๋ฉด ๋์์ด ๋์ง๋ง ๊ฐ๋ณ ๋ฌธ์ ๋ ์ค์ ๋ฌธ์ ์
๋๋ค. ์ฐ๋ฆฌ ์ค ๋๊ตฌ๋ ์๋ชป๋ ๊ธฐ๊ฐ์ ์ถ์ ํ๋ ๋ฐ ์๊ฐ์ ๋ณด๋ด๋ ์ฌ๋๋ค์ ๋ํ ๋ณด๊ณ ๋ฅผ ๋ฐ๊ณ ์ถ์ดํ์ง ์์ต๋๋ค.
..=
๋ฐ ..
๊ฒ์ ๋ฏธํ์ ์ผ๋ก ๋ ๋งค๋ ฅ์ ์ด์ง๋ง ์์ ์ค์ ์ ์ธ ์ค์ ๋ฌธ์ ๋ฅผ ํผํ ์ ์์ต๋๋ค. ์์ฃผ ๋ถ๋๋ฌ์ด ๋ฐฉ์์ผ๋ก ๋กค์์ํ ์๋ ์์ต๋๋ค. ๋จผ์ ..=
๋ฅผ ๋์ ๊ตฌ๋ฌธ์ผ๋ก ๋์
ํ๊ณ (rustfmt ๊ฐ ๋ค์ ์์ฑํ ์ ์์), ๊ด์ฉ์ ์ด ๋ ํ์๋ง ...
์ฌ์ฉํ์ง ์์ต๋๋ค.
๋งํ ์ ์๋ ๊ฒฝ์ฐ๋ฅผ ๋๋นํ์ฌ ํ์ ..=
๋ฐ ..
๊ฐ ์ฐ๋ฆฌ์ ์ต์ ์ ๊ธธ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. ์ด ๋ฌธ์ ๋ ๋ํ ์๋ก์ด ์ฃผ์ฅ์ด ์ ๊ธฐ๋ ๊ฐ๋ฅ์ฑ์ด ๋งค์ฐ ๋ฎ๋ค๋ ์ ์์ ๋
ผ์๋์์ต๋๋ค. ๊ทธ๋์ ์ฐ๋ฆฌ๋ ๋ฐ์ด๋ค ์ค๋น๊ฐ ๋์์ต๋๋ค. ์ฐ๋ฆฌ๋ ๋ ๊ฐ์ง ๋ชจ๋์ ๋ํด ..=
ํ๊ธฐ๋ฒ์ ๊ตฌํํ๊ณ ์ ํ๋ ์ฌ๋์ ์ฐพ๊ณ ์์ต๋๋ค. ํจํด๊ณผ ํํ, ๊ทธ๋ฆฌ๊ณ ์ด์ด์ ์ฐ๋ฆฌ๋ FCP๋ก ๊ฐ ๊ฒ์
๋๋ค!
์ด๋ฅผ ์ํด ์ฐ๋ฆฌ๋ ๊ตฌํ์ ์ถ์งํ ๋๊ตฐ๊ฐ(๋๋ ์ผ๋ถ ์ฌ๋๋ค)๋ฅผ ์ฐพ๊ณ ์์ต๋๋ค. ์๋ง๋ ์ด๊ฒ์ ๋ ์์ PR์์ ์ํ๋ ์ ์์ต๋๋ค.
..=
๋ฅผ ...
์ ๋ณ์นญ์ผ๋ก ํ์์ ์ถ๊ฐํ๊ณ ๊ธฐ์กด ํ
์คํธ๋ฅผ ๋ณํํด ๋ณด๊ฒ ์ต๋๋ค....
๋ ๋ฌผ๋ก ๊ณ์ ์๋ํด์ผ ํ๋ฉฐ ์ด๊ฒ์ด "์๋" ์ฌ์ฉ ์ค๋จ๋๊ธฐ๋ฅผ ์ํ๋ฏ๋ก (์์ง) ๊ฒฝ๊ณ ๋ฑ์ ๋ฐํํ ํ์๊ฐ ์์ต๋๋ค....
ํจํด์ ๋ํ ํ
์คํธ๋ฅผ ์ ์งํด์ผ ํฉ๋๋ค.DotDotEquals
ํ ํฐ ( ์ฌ๊ธฐ์ ๊ธฐ์กด DotDotDot
) ๋ค์ ์์ ํ์์ ๋ฐ์ DotDotEquals
๋ชจ๋ ๊ณณ์์ ์ฐ๋ฆฌ ์ด์ DotDotDot
์๋ฝ( ์์ )ripgrep DotDotDot
๋ ์ฌ๊ธฐ ๋น์ ์ ์น๊ตฌ์
๋๋ค ;)...
๋ ๊ฒฐ์ฝ ์์ ์ ์ด์ง ์์ผ๋ฏ๋ก ..=
ํ๊ณ ์ด์ ์ง์์ ์ข
๋ฃํ ์ ์์ต๋๋ค.์ฐธ๊ณ ๋ก ๊ตฌํํ ๋ extern fn foo(a: u32, ...)
๊ตฌ๋ฌธ ์ ..=
๋ก ๋ณ๊ฒฝํด์๋ ์ ๋ฉ๋๋ค ๐
์ฝ๋์ ๋ํ ๋ฉ์ง ์ฒซ ๋ฒ์งธ ๋จ๊ณ์ฒ๋ผ ๋ณด์ด๊ธฐ ๋๋ฌธ์ ๋ฐ์๋ณด๊ณ ์ถ์ง๋ง ์์ผ๋ก 2์ฃผ ๋์ ์๊ฐ์ด ๋ง์ง ์์ ๊ฒ์ด๋ฏ๋ก ๋๊ตฌ๋ ์ง ๋ฐ์๋ณด๊ณ ์ถ๋ค๋ฉด ๋ถ๋ด ์์ด ์ด์ฉํ์ธ์!
๋๋ ์ฐฌ์ฑ ๊ฐ์ธ์ ์ผ๋ก ๋ ํด์ ..^
์ด์ ..=
๋ก, a operator= b
์ผ๋ถ ์ฌ์
์, ์ด๋ฏธ ๋ณ์นญ์
๋๋ค a = a operator b
. ๋ฐ๋ฉด์ ^
๋ XOR์ ๋ํด์๋ง ํจ์ฌ ์ ๊ฒ ์ฌ์ฉ๋๋ฏ๋ก ํผ๋์ ๋ ์ผ์ผํฌ ๊ฒ์
๋๋ค.
..
์ ์ด์ ๋ํ ์ผ์ชฝ ๋ฐ ์ค๋ฅธ์ชฝ ํผ์ฐ์ฐ์์ ์ ํ๊ณผ ๋ค๋ฅธ ์ ํ์ ์์ฑํ๋ฏ๋ก ..=
์ ๋ํ ๋ฌธ์ ๊ฐ ๋์ง ์์ต๋๋ค. ์ปจํ
์คํธ๋ ๋ํ ์ฐ์ฐ์์ ๋ชฉ์ ์ ์๋ณํ๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค. +=
๋ ()
๋ฐํํ๋ฏ๋ก ์ผ๋ฐ์ ์ผ๋ก ์์ฒด ์ค์ ์์ฒด ๋ช
๋ น๋ฌธ์ผ๋ก ๋ํ๋ ์ ์์ต๋๋ค. ๋ฐ๋ฉด ..=
๋ InclusiveRange๋ฅผ ๋ฐํํ๋ฏ๋ก ๋ค๋ฅธ ๋ช
๋ น์ด ๋ด์์ ํํ์์ผ๋ก ๋ํ๋ฉ๋๋ค. ๋ํ ์์์ ์ธ๊ธํ๋ฏ์ด ..^
๋ ๋ฒ์๋ณด๋ค ์ง์์ ๋ ๊ด๋ จ์ด ์๋ ๊ฒ์ฒ๋ผ ๋ณด์
๋๋ค.
@Xaeroxe ^
๋ Rust์์ ์ง์์ ์๋ฌด ๊ด๋ จ์ด ์์ต๋๋ค(๋น๋ก ๋ค๋ฅธ ์ธ์ด์์๋ ๊ทธ๋ ๊ฒ ์ฌ์ฉ๋จ). ๋ฐ๋ฉด +=
, -=
, *=
๋ชจ๋ Rust์ ์กด์ฌํฉ๋๋ค. ์ค์ ๋ก ^=
์กด์ฌํฉ๋๋ค.
ํ์ง๋ง ..=
์์ผ๋ฉด ์ข์ต๋๋ค.
#42134๊ฐ ๋ณํฉ๋์์ผ๋ฏ๋ก ์ด์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๊ตฌ์กฐ์ฒด๋ฅผ ์์ ํํ๊ธฐ ์ํด ์ด๋ํ ์ ์์ต๋๊น? ์์ ๋งํ๋ฏ์ด ๊ตฌ์กฐ์ฒด๋ฅผ ๋ ๋นจ๋ฆฌ ์์ ํํ๋ ๊ฒ์ด ๋์์ด ๋์ง๋ง ์์ ํํ๊ธฐ ์ ์ ๊ตฌ๋ฌธ์ด ์์ ํ๋ ๋๊น์ง ๊ธฐ๋ค๋ ค์ผ ํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
@clarcharr ์ ๋ ์ฐ๋ฆฌ๊ฐ ..=
๊ตฌ๋ฌธ๋ฟ๋ง ์๋๋ผ ํด๋น ๊ตฌ์กฐ๋ฅผ ์์ ํํ๊ธฐ๋ก ๊ฒฐ์ ํ๋ค๊ณ ๋ฏฟ์ต๋๋ค. ๊ทธ๋์ ์ค์ ๋ก ๊ทธ๋ ๊ฒ ํ๋ ค๋ฉด ์ฝ๊ฐ์ PR๋ง ์์ผ๋ฉด ๋ฉ๋๋ค.
ํธ์ง : ์์ค ๋ด๊ฐ ํ๋ ธ๋ค. ์ปดํ์ผ๋ฌ์์ ๊ตฌํ ์ค์ด๋ฉฐ ๊ตฌ๋ฌธ ์์ ํ๋ ์ต์ข ์ฃผ์ ๊ธฐ๊ฐ์ด ๊ฒฝ๊ณผํ ๋๊น์ง ๊ธฐ๋ค๋ ค์ผ ํฉ๋๋ค. ์ด ์์ ์์ ๊ตฌ์กฐ๋ฅผ ์์ ํํด์ผ ํ๋ค๊ณ ์๊ฐํ์ง๋ง ๊ทธ๊ฒ๋ ์ ๊ฐ ๊ฒฐ์ ํ ๋ฌธ์ ๊ฐ ์๋๋๋ค.
๋๋ ...
๊ฐ ํฉ์๋ฅผ ์ด๋ฃจ๋ ๊ฒ์ฒ๋ผ ๋ณด์์ ๋ ์ค๋ ์ ์ ์ฃผ์ ๋ฅผ ๋ฐ๋ผ๊ฐ๋ ๊ฒ์ ์ค๋จํ์ต๋๋ค. ..=
๋ ์ธ๋ป ๋ณด๊ธฐ์ ์ ๊ต์ฒ๋ผ ๋ณด์ด๊ธฐ ๋๋ฌธ์ ์ด์ํด ๋ณด์
๋๋ค.
ํ์ง๋ง ํจ์ฌ ๋ ์ค์ํ ๊ฒ์ ์ด ์์ ๊ฑฐ ์ ฐ๋ฉ์ด ํ์ฌ ํจํด ๊ตฌ๋ฌธ์ ๋ณ๊ฒฝํ ๋งํผ ์ค์ํ์ง ์๋ค๋ ๊ฒ์ ๋๋ค.
์ด ๊ตฌ๋ฌธ์ ์ง์ฆ๋!
=๋ +=, -=, *= ๋ชจ๋ธ์์๋ ํ ๋น์ ์๋ฏธ๊ฐ ์์ง๋ง ..=๋ ๋ฌด์ธ๊ฐ๋ฅผ ์ป๋ ๊ฒ์
๋๋ค. ๋๋ฌด ํผ๋์ค๋ฝ๊ณ ์ถํฉ๋๋ค.
๋ฐฐ์ด ์ธ๋ฑ์ค๊ฐ 0์์ ์์ํ๋ ๊ฒ์ฒ๋ผ '...'๋ ์ข๊ณ ์๋ฆ๋ต์ต๋๋ค. ์ฌ๋๋ค์ ๊ทธ๊ฒ์ ์ต์ํด์ง ๊ฒ์
๋๋ค.
@zensai
..=
๋ ๊ฐ๋
์ ์ผ๋ก ==
๋ฐ <=
์ ๊ฐ์ ์ฐ์ฐ์์์ ํ์๋๋ฉฐ ์ด๋ฏธ Rust์ ์กด์ฌํ๋ฉฐ ํ ๋น์ด ์๋ ๋๋ฑ ๋น๊ต๋ฅผ ๋ํ๋
๋๋ค.
(์: 1..=5
๋ "Range over values 1 <= x <= 5
"์ ์ฝ์ด์ด๋ฉฐ 1..5
๋ "Range over values 1 <= x < 5
"๋ฅผ ์๋ฏธํฉ๋๋ค.
ํธ์ง: ๋ํ "์ต์ํด์ง๋" ๋ฌธ์ ๊ฐ ์๋๋ผ ํผ๊ณคํ๊ฑฐ๋ ์ฐ๋งํ ๋ ์๋ชป ์ฝ๊ฑฐ๋ ์๋ชป ์ ๋ ฅํ๊ธฐ๊ฐ ๋ ์ด๋ ค์ด ๋ฌธ์ ์ ๋๋ค. ์ด์ ๊ฐ์ ๊ฐ๋ณ ์ค๋ฅ๋ ๋ฐ์ด์ผ๋ก ์ ๋ช ํฉ๋๋ค.
์ด๋ฏธ ..
์๋ฏธํ ๋ ์ค์๋ก ...
์
๋ ฅํ์ต๋๋ค. ๊ณ ๋ง๊ฒ๋ ์ ๋ ํญ์ ์์ ์ ์ธ Rust๋ฅผ ๋์์ผ๋ก ํ๋ฏ๋ก ์ปดํ์ผ๋ฌ๊ฐ ์ด๋ฅผ ํฌ์ฐฉํ์ต๋๋ค. (๋จ, ๋
ผํฝ์
๊ธ์ ๋ง์ด ์ฐ๋ ํธ์ด๋ผ ์ ์ฌ ์๋ต ๋ถํธ๋ฅผ ์
๋ ฅํ๊ณ ์ถ๋ค๋ ๊ฐ์ ํ์ ๊ทผ์ก๊ฒฝ๋ จ์ธ์ง ๊ทผ์ก๊ธฐ์ต์ธ์ง ๊ธฐ์ต์ด ๋์ง ์์ต๋๋ค.)
@zengsai ...
๋๋ฌด ๋ฏธ๋ฌํ๊ณ ..
์ ๋๋ฌด ๋น์ทํด ๋ณด์
๋๋ค.
์ธ์ด๊ฐ ๋ค๋ฅธ ๊ฒ์ ์๋ฏธํ๋ ๋ค๋ฅธ ์์ ์ ์ ๊ฐ๋ ๊ฒ์ ์ ๋ง ๋น์ ์์ ์ผ ๊ฒ์ ๋๋ค.
๋ฏธํ์ ์ผ๋ก ์ดํํ๋ ๊ฒ๋ณด๋ค ๋ฐ ์ด์ ์ ๊ฑฐํ๋ ๊ฒ์ด ๋ ์ค์ํฉ๋๋ค.
์ ๊ท ์ฌ์ฉ์: ์ค๋ ๋๊ฐ ๋งค์ฐ ๊ธธ๊ธฐ ๋๋ฌธ์ TL;DR์ ๋ง๋ค์์ต๋๋ค. ์ฌ๊ธฐ์์ ์ฝ์ ์ ์์ต๋๋ค: https://github.com/rust-lang/rust/issues/28237#issuecomment -296310123
" ์ด์ ๊ฐ์ ๊ฐ๋ณ ์ค๋ฅ๋ ๋ฐ์ด์ผ๋ก ์ ๋ช ํฉ๋๋ค."๋ผ๊ณ ๋งํ๋ฉด์ ์คํ ๋ฌธ์ ๊ฐ ์ด ๋ณ๊ฒฝ์ ์ฃผ์ ์์ธ์ผ๋ก ์ฌ์ฉ๋์ด์๋ ์ ๋๋ค๊ณ ๋งํด์ผ ํฉ๋๋ค.
์ด ๋น๊ต, ".." ๋ฐ "..." ๋ "=" ๋ฐ "=="๋ฅผ ๋ณด์ญ์์ค. ์ฌ์ฉ์์ ์คํ ๋ฌธ์ ๋ฅผ ํผํ๊ธฐ ์ํด "=="์ ๋ํ ๋ค๋ฅธ ๊ตฌ๋ฌธ์ ์ฐพ์์ผ ํ๋ค๋ ์๋ฏธ์ ๋๊น? "=" ๋ฐ "=="๊ฐ ๊ด์ฐฎ๋ค๋ฉด ์ ".." ๋ฐ "..."๋ ํ ์ ์์ต๋๊น?
๋๋ 2๋ ์ด์ Rust-lang์ ํ๋ก์ฐํ๊ณ ์์ต๋๋ค. ant ๊ทธ๊ฒ์ ๋ด ๊ฐ์ธ ํ๋ก์ ํธ์ ๋ง์ ๋ถ๋ถ์์ ์ฌ์ฉ๋์์ต๋๋ค. ๋๋ ๊ทธ๊ฒ์ ์ข์ํ์ง๋ง ์ด ๊ตฌ๋ฌธ์ ์ ๋ง๋ก ๋๋ฅผ ๋ถํธํ๊ฒ ๋ง๋ญ๋๋ค. ๋ฏธํ์ ์ผ๋ก ๋งค๋ ฅ์ ์ผ ๋ฟ๋ง ์๋๋ผ ์ฝ๋์ ์ฐ๊ธฐ ๋ฐ ์ฝ๊ธฐ ์ ์ฐฝํจ์๋ ์ํฅ์ ๋ฏธ์นฉ๋๋ค.
@zengsai ๊ทธ๊ฒ์ ์ฃผ๋ก ์ฝ๋๋ฅผ _์์ฑ_ํ ๋๊ฐ ์๋๋ผ ์ฝ๋๋ฅผ ๊ฒํ ํ๊ณ ์ฝ๊ณ ์ดํดํ ๋๋ผ๋ ๊ฒ์ ์ดํดํ์ต๋๋ค. ์ฐพ๊ณ ์์ง ์๋ค๋ฉด ..
vs. ...
๋์น ์ ์์ง๋ง ..=
ํ์คํ ๋ ๋์ ๋๊ณ ์ด๊ฒผ์ต๋๋ค. ์ด ๋ฌธ์ ๊ฐ ์์ต๋๋ค.
๋ฏธํ์ ์ธ ๊ด์ ์์ ๋ด๊ฐ ..=
๊ตฌ๋ฌธ์ ์ข์ํ๋์ง ํ์ ํ ์ ์์ง๋ง ..
๋ฐ ...
๋ํด ๋งค์ฐ ๋น์ทํ๊ฒ ์ฝ๊ณ ์๋ ๋ชจ๋ ์ฌ๋์ด ์ด๋์์ ์ค๋์ง ์ ์ ์์ต๋๋ค.
@zengsai =
๋ ==
์๋ ..
๋ ...
์ฌ์ฉํ ์ ์๋ ์๋ฃจ์
์ด ์๊ธฐ ๋๋ฌธ์
๋๋ค.
๋ฌผ๋ก , C์์ =
์ ==
๋ฅผ ํผ๋ํ ์ ์์ต๋๋ค... ๊ทธ๋ฌ๋ ์ด๊ฒ์ ์ธ์ ๋ ๋ฐ์์ทจ์ด๋ฉฐ Python ๋ฐ Rust์ ๊ฐ์ ๋ณด๋ค ํ๋์ ์ธ ์ธ์ด๋ ๋ค์๊ณผ ๊ฐ์ด ํด๊ฒฐํ์ต๋๋ค.
if x = y
๋ณด๋ค๋ if x == y
(์ด ๋
น๊ณผ ํ์ด์ฌ์ด ๋ง๋ ์์ ์
๋๋ค)x == y;
๋ณด๋ค๋ x = y;
, ๋๋ ์๋ฌด๋ฐ ์ํฅ์ ๋ฏธ์น์ง ์์ต๋๋ค ํํ์ ๋ํ ๊ฒฝ๊ณ ๋ฅผ ๋ฐ์์ต๋๋ค.์ปดํ์ผ๋ฌ๊ฐ ..
๋ ...
ํผ๋์ด ์๋ชป๋ ๊ฒ์ ๊ณ ์ฌํ๊ณ ๋น์ ์์ ์ด๋ผ๋ ๊ฒ์ ์ธ์ํ ๋ฐฉ๋ฒ๋ ์์ต๋๋ค.
@zengsai ..
๋ฐ ...
๋ ๋์ผํ ํน์ฑ์ ๋ชจ๋ ๊ตฌํํ๊ณ ๋ณธ์ง์ ์ผ๋ก ์ํธ ๊ตํ ๊ฐ๋ฅํ๊ฒ ์ฌ์ฉํ ์ ์๋ ์ ํ์ผ๋ก ํ๊ฐ๋ฉ๋๋ค(์ด๋ ์๋๋ ๊ฒ์ ). ํ๋์ ์ค๋ฅ๋ก ์ธํด ๋ฒ์ด๋๋ ๊ฒ์ ๋งค์ฐ ์ค์ ์ ์ธ ๋ฌธ์ ์
๋๋ค.
๋๋ ๋ํ ์ด ๊ตฌ๋ฌธ์ ์ซ์ดํ๋ค๋ ๊ฒ์ ๋ถ๋ช
ํ ํ๊ณ ์ถ์ต๋๋ค. ๊ทธ๋์ ์ฐ๋ฆฌ๊ฐ ..
๋ฐ ํํ์๊ณผ ...
๋ฅผ ์ฌ์ฉํ๋ ํ์ฌ ์ํฉ์ด @aturon ์ ์๊ฒฌ์ ๋์ํ์ง ์์ต๋๋ค. ํจํด์ "์ ์งํ ์ ์์ต๋๋ค." ์ฌ์ค ์ด ๊ตฌ๋ฌธ์ ์ฌ์ฉํ๋ ๊ฒ๋ณด๋ค ์ฐ๊ฒฐ์ ๋๋ ๊ฒ์ด ๋ ๋ซ๋ค๊ณ ์๊ฐํฉ๋๋ค.
๊ทธ๋ฌ๋ ์ด ์ค๋ ๋์ ๋ํด ์๋ก์ด ์ฃผ์ฅ์ด ์์ผ๋ฉฐ ์ ๊ทน์ ์ผ๋ก ํฌ์ํ ์ฌ์ฉ์์ ๋๋ค์(๋ฐ ๋๋จธ์ง ์ธ์ด ํ)๊ฐ ์ด ๋ณ๊ฒฝ ์ฌํญ์ ์ ํธํ๋ค๋ ์ ์ ๋ํด ๊ฒฐ์ฝ ํฉ์๋ฅผ ๋ณด์ง ๋ชปํ ๊ฒ์ด ๋ถ๋ช ํฉ๋๋ค. ๊ทธ๋์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์๋๋ก ์์ ์ ์์ต๋๋ค.
๋ด ๊ฒฝํ์ ์์์ด ๋๋ค๋ฉด ๋๋ค์์ ์ฌ์ฉ ์ฌ๋ก์์ ์ด ๊ธฐ๋ฅ์ด ์ค์ ๋ก ํ์ํ์ง ์์ผ๋ฏ๋ก ์ฝ๋ ์ ์ฒด์ ๋ํ๋์ง ์์ ๊ฒ์ ๋๋ค.
์ฌ์ค, ๋๋ ์ฌ์ ํ ํจํด์์ ...
๋ฅผ ๋น์ถ์ฒํ๋ ๊ฒ์ ๋ํด ์ ๋ง๋ก ๋ถ๋ง์ด ์๊ณ , ๊ธฐ๋ณธ์ ์ผ๋ก ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์๋๋ก ์ด๋นจ์ ๊ฐ๊ณ ์์ต๋๋ค. ์ ์ฒด lang ํ์ ..
๋ฐ ...
ํํ์์ด ๋ชจ๋ ์๋ ๊ฒ์ด ๋์ฐํ ์ฌ๋ง๊ท๊ฐ ๋ ๊ฒ์ด๋ผ๋ ๋ฐ ๋์ํ์ฌ ์ผ๋ถ ์ฌ์ฉ์๋ ์์ ํ ์กฐ์ฉํ ์คํ ๋ฌธ์ ๋ฅผ ๋๋ฒ๊น
ํ๋ ๋ฐ ๋ช ์๊ฐ์ ์๋นํ๊ฒ ๋ฉ๋๋ค.
๋๋จธ์ง lang ํ์ ํํ๊ณผ ํจํด ์ฌ์ด์ ๋จ์ ์ด ์๋ ๊ฒ์ด ์ฉ๋ฉ๋ ์ ์๋ค๊ณ ๊ฐํ๊ฒ ๋๋ผ๊ณ ์์ผ๋ฉฐ ์ ๋ ๋์ํ์ง ์์ง๋ง ์ฐ๋ฆฌ๋ ๋ชจ๋ ์ฃผ์ฅ์ ํผ์ณค๊ณ ์์ํ ๊ต์ฐฉ ์ํ์ ์๋ ๊ฒ์ด ๊ฑด๊ฐํ๋ค๊ณ ์๊ฐํ์ง ์์ต๋๋ค.
@ssokolow ์ฃ์กํฉ๋๋ค. ์์ง ๋์ํ ์ ์์ต๋๋ค. ์ปดํ์ผ๋ฌ๋ ์ด๋ฐ ์ข ๋ฅ์ ์คํ๋ฅผ ๊ฒฝ๊ณ ํ ์ ์์ง๋ง "x=6"์ด์ด์ผ ํ๋ ์์น์ "x=5"๋ฅผ ์ ๋ ฅํ๋ฉด ์ด๋ป๊ฒ ๋ ๊น์?
์ปดํ์ผ๋ฌ๋ ์คํ๋ฅผ ํผํ๊ธฐ์ ์๋ฒฝํ ๊ฒ์ ์๋์ง๋ง ํ๋ก๊ทธ๋๋จธ๋ ๊ทธ๋ ์ต๋๋ค.
์ด ๋ณ๊ฒฝ์ ๋ถ์์ฉ์ด ์๋ค๋ฉด ์ ์ ์ผ๋ก ๋์ํฉ๋๋ค. ๊ทธ๋ฌ๋ ์ด๊ฒ์ ์ธ์ด์ ๋ฏธ์ ๊ฐ๊ฐ, ์ฐ๊ธฐ ๋ฐ ์ฝ๊ธฐ์ ์ ์ฐฝํจ์ ์๊ฒ ํ์ฌ ๋ด ๊ฐ์ธ์ ์ธ ์๊ฒฌ์ผ๋ก๋ ๊ฐ์น๊ฐ ์์ต๋๋ค.
์ค๋๋ ์ ๋ น์ ์ด๋ฏธ ์ฝ๊ธฐ ๋ฐ ์ฐ๊ธฐ ๋ฌธ์ ์ ์ง๋ฉดํด ์๊ณ , ๋ ํํ์ง ์๊ณ ์ง๊ด์ ์ด์ง ์์ ๊ตฌ๋ฌธ์ ๋ ๋ง์ ํ์ต ๊ณก์ ์ด ์์ผ๋ฏ๋ก ๋ค๋ฅธ Perl์ ๋ง๋ค์ง ๋ง์ญ์์ค.
@withoutboats ์ฐ๋ฆฌ๋ ๊ทธ๊ฒ์ ์ฌ๋ํ๊ธฐ ๋๋ฌธ์ ๋ ผ์ํฉ๋๋ค. ์ด์ฉ๋ฉด ์ด ์ฃผ์ฅ์ ๋๋ฌด ๋ฆ์๊ณ ์๋ฌด๊ฒ๋ ๋ฐ๊ฟ ์ ์์์ต๋๋ค. ๊ทธ๋ฅ...
@zensai
๋ถ๋ช ํ ํํํด์ผ ํ ๋ถ๋ถ์ด ์์ง๋ง, ์ฐ๋ฆฌ๋ ๊ทธ๊ฒ๋ค ์ฌ์ด์ ์ต์์ ๊ท ํ์ ์ ๋ํด ๊ฒฐ์ฝ ๋์ํ์ง ์์ ๊ฒ์ด๋ผ๋ ์ธ์์ ๋ฐ์์ต๋๋ค.
๊ฐ์ธ์ ์ธ ์ทจํฅ์ ๊ด๊ณ์์ด ..=
๋ ๋ฒ๊ทธ๋ฅผ ์ถ์ ํ๋ ๋ฐ ๋ญ๋น๋๋ ๋งค์ฐ ๋ง์ ์๊ฐ์ ํผํ๊ธฐ ์ํด ์ง๋ถํด์ผ ํ๋ ์์ ๋น์ฉ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค.
(์ ๊ฐ ์ค์ ์ ์ผ๋ก ๋ค๋ฃจ๋ ๋ถ์ผ๋ UI/UX ๋์์ธ์ด๋ฉฐ ๊ทธ๋ค์ด ๊ฐ๋ฅด์ณ์ฃผ๋ ๊ฐ์ฅ ํฐ ๊ท์น ์ค ํ๋๋ ์ค์๋ฅผ ์ฝ๊ฒ ์ ์ง๋ฅผ ์ ์๋ ํผํด ๋ฐ/๋๋ ์์ ์๊ฐ์ ๋ฐ๋น๋กํ๋๋ก ํ๋ ๊ฒ์ ๋ชฉํ๋ก ํด์ผ ํ๋ค๋ ๊ฒ์ ๋๋ค. )
๋ด ์์ ์๊ฒฌ์ผ๋ก๋ 5
vs. 6
๊ฐ ..
vs ...
๋ณด๋ค ํจ์ฌ ๋ ๋ช
ํํฉ๋๋ค.
@zengsai ์ด ๋ํ๋ฅผ ์ํด ๋๋ฌด ๋ง์ ์ด๋ฉ์ผ์ ๋ฐ๊ณ ์์ต๋๋ค. ๋น์ ์ ๊ฐ์ ์ ๋ ์ ํํํ๊ธฐ ์ํด
@daiheitan ์ ์์ ์ธ ํต์ ์ ๋๋ค. ๋ง์์ ๋ค์ง ์์ผ๋ฉด ์ด ์ด๋ฉ์ผ
Rust๋ฅผ ์ฒ์ ๋ณด์์ ๋ ..
๊ตฌ๋ฌธ์ ๋ํด ์ ๋ง ๋๋์ต๋๋ค. (1..10).sum()
๋... 1์์ 9๊น์ง์ ์ ์์ ํฉ์ธ๊ฐ์? ์ด ๊ตฌ๋ฌธ์ ์๋ก ์จ ์ฌ๋์๊ฒ ์ ์ํ๊ณ ๊ทธ ์๋ฏธ๊ฐ ๋ฌด์์ธ์ง ๋ฌป๋๋ค๋ฉด ๊ทธ๋ 1์์ 10์ผ๋ก ๊ฐ ๊ฒ์ผ๋ก ์์ํ ๊ฐ๋ฅ์ฑ์ด ๋งค์ฐ ๋์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ทธ๋ ๊ทธ๋ ๊ฒ ํ๋ ๊ฒ์ด ์ณ์ ๊ฒ์
๋๋ค. ๋์นญ ๊ตฌ๋ฌธ์ด ๋์นญ์ ํํํ ๊ฒ์ผ๋ก ์์ํ๊ธฐ ๋๋ฌธ์
๋๋ค. ๋ฒ์. ์ 1์ ํฌํจ๋์ด์ผ ํ์ง๋ง 10์ ํฌํจ๋์ง ์์์ผ ํฉ๋๊น?
๋์นญ ๋ฒ์์ ๋ํด ๋ค๋ฅธ ๋น๋์นญ ํ์ ..=
์ ์ถ๊ฐํ๋ฉด ์๊ฐ์ ์ผ๋ก ๋ ์ผ๊ด์ฑ์ด ์์ต๋๋ค. ์ผ์ชฝ์ด ํฌํจ๋๊ธฐ ์ํด =
๊ฐ ํ์ํ์ง ์์ ์ด์ ๋ฅผ ๋ฌผ์ ์ ์์ต๋๋ค. ๋ฐ๋ผ์ ์์ชฝ์ ํฌํจ ๋ฒ์์ ๋ํด =..=
๊ฐ ๋ฉ๋๋ค.
Swift ๊ตฌ๋ฌธ ( ๋จ๋
์ ๊ฒฝ์ฐ ..<
๋ฐ ํฌํจ์ ๊ฒฝ์ฐ ...
)๊ณผ ๊ฐ์ ๊ฒ์ด ์ด๋ฌํ ๋ฌธ์ ๋ฅผ ๋ฐฉ์งํ๊ณ ๊ฐ๋
์ฑ์ ํฅ์์ํต๋๋ค. ์ธ์ด๋ฅผ ์์ ํ ์ฒ์ ์ ํ๋๋ผ๋ ์ฝ๊ฒ ์๋ฏธ๋ฅผ ์ ํํ๊ฒ ์ถ์ธกํ ์ ์์ผ๋ฏ๋ก ๊ธฐ์ตํด์ผ ํ ๊ฒ์ด ํ๋ ์ค์ด๋ญ๋๋ค. ํนํ Rust๊ฐ ์ ๊ท ์ฌ์ฉ์ ์นํ์ฑ์ ์ถ๊ตฌํ๋ ๊ฒ์ ๊ณ ๋ คํ ๋ ์ด์ ๊ฐ์ ๊ฒ์ด ์ ํ๋๊ธฐ๋ฅผ ๊ธฐ๋ํ์ ๊ฒ์
๋๋ค.
@rkarp ์ด๋ ์ ๋๊น์ง๋ ๊ธฐ์กด ํธ๊ฒฌ ๋๋ฌธ์ผ ๊ฒ์ ๋๋ค.
์๋ฅผ ๋ค์ด, Rust์๋ ๋ง์ Python ์ํฅ์ด ์์ผ๋ฉฐ Python์ ๊ฐ์ ์ข
๋ฅ์ ๋ฐ๊ฐ๋ฐฉ ๋ฒ์๋ฅผ ์ฌ์ฉํฉ๋๋ค. (์ฆ, Python์ range(1, 5)
๋๋ myList[1:5]
๋ ๋ค Rust์ 1..5
์ ๊ฐ์ ๋์์ ๊ฐ์ง)
ํ์ด์ฌ์์ ์ด์ ๋ํ ์ ๋น์ฑ์ ์ค์ง ํ๋์ ๊ตฌ๋ฌธ๋ง ์๊ณ ๋ฐ์ฏค ์ด๋ฆฐ ๊ตฌ๋ฌธ์ ์ฌ์ฉํ๋ฉด head, tail = myList[:pivot], mylist[pivot:]
์ ๊ฐ์ ์์
์ ๋ ์ฝ๊ฒ ์ํํ ์ ์๋ค๋ ์ ๊ณผ ๊ด๋ จ์ด ์์ต๋๋ค.
์ฆ, Rust๊ฐ 1.0์ ํต๊ณผํ๋ค๋ ์ ์ ๊ฐ์ํ ๋ ๊ธฐ์กด ์ฝ๋๋ฅผ ๊นจ๋จ๋ฆฌ์ง ์๋ ๊ฒ์ ๋ํ ์๋นํ ์๊ฒฉํ ๊ท์น์ด ์์ต๋๋ค. ..
ํจํด ์ธ๋ถ ๋
์ ๋ฐ ...
๋
์ ๋ด๋ถ ํจํด์ ์ ํจํ๊ฒ ์ ์ง๋์ด์ผ ํฉ๋๋ค.
..=
๋ ..
(๋
์ ) ๋ฐ ..=
(ํฌํจ)๋ฅผ ๋ชจ๋ ๊ณณ์์ ํ์ฉํ๊ณ ...
๋ฅผ ..
๋ํ ๋ ์ด์ ์ฌ์ฉ๋์ง ์๋ ๋์์ด๋ก ์ทจ๊ธํ ์ ์๊ธฐ ๋๋ฌธ์ ์๋ํฉ๋๋ค. ํจํด์์.
..=
๋ฅผ ํ ํฐ์ผ๋ก ์ฌ์ฉํ๋ ๊ฒ์ ๋งคํฌ๋ก์ :tt
๊ท์น์ ์ํฅ์ ๋ฏธ์น๊ธฐ ๋๋ฌธ์ ๊ธฐ์ ์ ์ผ๋ก ํธํ๋์ง ์๋ ๋ณ๊ฒฝ ์ฌํญ์
๋๋ค. ์๋ง๋ ๋ฌธ์ ๊ฐ ๋์ง๋ ์๊ฒ ์ง๋ง ์กฐ์ฉํ ๋ณํ์ผ ์ ์๋ค๋ ์ ์ ๊ณ ๋ คํ์ฌ ๋๊ตฐ๊ฐ ๊ทธ๋ ๊ฒ ํ์ง ์๋์ง ํ์ธํ๊ณ ์ถ์ ์ ์์ต๋๋ค. (๋์์ .. /* why not */ =
ํ์ฉํ๋ ๊ฒ์
๋๋ค. ์ด๋ ์ข์ ์๊ฐ์ด ์๋๋๋ค.)
@ssokolow ์๋ฐํ a = 2
๋ ()
๋ฅผ ๋ฐํํ๋ ํํ์์ด๊ณ if
๋ bool
๊ธฐ๋ํ๋ฏ๋ก ๋ถ๋ช
ํ ํธํ๋์ง ์์ต๋๋ค.
๊ท์น์ด ์์ํ ๋ฐ๋๊ณ ์์ต๋๋ค. ๊ธฐ์ ์ ์ผ๋ก ..=
๋ ์ฒ์ 2๊ฐ ๋ค์ ๊ณต๋ฐฑ์ด ์๋ 3๊ฐ์ ํ ํฐ์
๋๋ค.
@eddyb : ๋๋ ๊ทธ๊ฒ์ ์์ ํ ์ดํดํ์ง ๋ชปํ๋ค๋ ๊ฒ์ ์ธ์ ํฉ๋๋ค. :tt ๊ตฌ๋ฌธ ๋ถ์ ๋ฐฉ๋ฒ์ ์ํฅ์ ์ฃผ์ง ์๊ณ ์ ํ ํฐ์ ๋์ ํ๋ ๋ฐฉ๋ฒ์ด ์์ต๋๊น?
์ด ์ฝ๋๋ ํ์ฌ "๊ท์น 2" ๋ฐ "๊ท์น 4"๋ฅผ ๋ณด๊ณ ํฉ๋๋ค. ์ด ๋ณ๊ฒฝ ์ฌํญ์ ์ฌ๋ฐ๋ฅด๊ฒ ์ดํดํ๋ฉด "๊ท์น 2" ๋ฐ "๊ท์น 5"๋ก ๋ณ๊ฒฝ๋ฉ๋๋ค.
macro_rules! ex {
( . . ) => { "Rule 1: . ." };
( .. ) => { "Rule 2: .."};
{ . . = } => { "Rule 3: . . = " };
{ .. = } => { "Rule 4: .. = " };
{ ..= } => { "Rule 5: ..=" };
}
macro_rules! show {
( $($t:tt)* ) => { println!("{}", ex!($($t)*)) };
}
fn main() {
show!(..);
show!(..=);
}
์๋์, ํ ํฐ์ด ์ ์๋๋ ๋ฐฉ์์ด ๋ณ๊ฒฝ๋์์ต๋๋ค. @jseyfried ๋ ๊ฒฐ๊ณผ๋ฅผ ๋ ์ ์ค๋ช ํ ์ ์์ต๋๋ค.
๊ธฐ์ ์ ์ผ๋ก ์ด๊ฒ์ ๊ตฌ๋ฌธ ๋ถ์ ์ค๋ฅ๊ฐ ์๋๋ผ Rust์ ์ ํ ์ค๋ฅ์ ๋๋ค. a = 2๋ ()๋ฅผ ๋ฐํํ๋ ํํ์์ด๋ฉฐ, bool์ด ํ์ํ ๊ฒฝ์ฐ ๋ถ๋ช ํ ํธํ๋์ง ์์ต๋๋ค.
@xfix ๊ฐ์ฌํฉ๋๋ค. ์ง๋๋ฒ์ ์คํ๋ฅผ ๋์ ๋ ์ ๋๋ก ์ฃผ์๋ฅผ ๊ธฐ์ธ์ด์ง ์์๊ณ ์ฌ์ ํ ํํ ์งํฅ ์ธ์ด๋ก ์๊ฐํ๋ ๋ฐ ์์ ํ ์ต์ํ์ง ์์ต๋๋ค.
๋๊ธ ์์ ํ์ต๋๋ค.
๋๋ ..=
๊ตฌ๋ฌธ์ด ๋ง์์ ๋ค์ง ์์ผ๋ฉฐ ํจํด์์ ...
๋ฅผ ์ฌ์ฉํ์ง ์๋ ๊ฒ์ ๋ฐ๋ํฉ๋๋ค. ์คํ ์ค๋ฅ๊ฐ ๋๋ ค์ฐ๋ฉด ...
๋๋ ..=
๋์ RangeInclusive { start, end }
๊ตฌ์กฐ์ฒด๋ฅผ ์ฝ์ด๋ก ์ฌ์ฉํ ์ ์์ต๋๋ค.
๋ด๊ฐ ๋ฐฉ๊ธ ๊นจ๋ฌ์ ์ ์ฌ์ ์ธ ๋ชจํธ์ฑ:
if let 5..=x { ... }
@clarcharr ๊ทธ๋๋ ์ปดํ์ผ๋์ง ์๋ ๊ฒ ๊ฐ์ต๋๋ค.
rustc 1.17.0 (56124baa9 2017-04-24)
error: unexpected token: `=`
--> <anon>:3:13
|
3 | if let 5..=x {
| ^^
error: aborting due to previous error
@clarcharr @kennytm
..=
๋ฅผ ํ๋์ ์ฐ์ฐ์๋ก ๋์
ํ๋ฉด ์ค๋ฅ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
error: expected one of `::` or `=`, found `{`
--> <anon>:3:13
|
3 | if let 5..=x {
| ^
error: aborting due to previous error
์ง๊ธ์ฒ๋ผ let x=10; if let 5..x {}
๋ฐ๋ผ์ ์ด "๋ชจํธ์ฑ"์ ์ปดํ์ผ๋์ง ์์ผ๋ฏ๋ก if let 5..x {}
๋ณด๋ค ๋ ๋ชจํธํ์ง ์์ต๋๋ค.
@Boscop ์์ ์ ํ์ฌ 5..
๋ฅผ Some(5)
์ ๊ฐ์ ํจํด์ผ๋ก ์ทจ๊ธํ๋ฉด if let 5.. = x
๊ฐ let Some(5) = x
์ ์ ์ฌํ๊ณ ํ์๊ฐ ์ปดํ์ผ๋๋ค๋ ๊ฒ์
๋๋ค. ๋ด ์๊ฒฌ์ 5..
๊ฐ ํจํด์ด ์๋๋ฏ ๋ก ..=
๋์
์ ๋ํ if let
ํธํ์ฑ ์ํ์ด ์์์ ๋ณด์ฌ์ค๋๋ค.
์ด ๊ธฐ๋ฅ์ ๋์
ํ๊ณ ํจํด์์ ..=
๋ฐ ..
๋ฅผ ๋ชจ๋ ํ์ฉํ๋ฉด if let 5..=x
๋ ํญ์ if let 5.. = x
์ด์ด์ผ ํ๋ฉฐ ์ปดํ์ผํด์ผ ํฉ๋๋ค. if let (single expression)
๋ ์๋ฏธ๊ฐ ์์ผ๋ฏ๋ก ๋ชจํธ์ฑ์ด ์๋ค๊ณ ์๊ฐํฉ๋๋ค.
@kennytm ๊ทธ๋์ ์ฐ๋ฆฌ ๋ ๋ค ์ปดํ์ผํ์ง ์์ 2๊ฐ์ง ๋ค๋ฅธ ๋ชจํธ์ฑ์ ๋ณด์ฌ์ฃผ์์ต๋๋ค. (๊ทธ๊ฐ ๋ฌด์์ ์๋ฏธํ๋์ง๋ ๋ถ๋ช ํ์ง ์์์ต๋๋ค. ๋ค์ ๋ชจํธํ์ต๋๋ค.)
@daboross kennytm์ด ๋งํ๋ฏ์ด 5..
๋ ํจํด์ด ์๋๋ฉฐ ์ง๊ธ๋ ์ปดํ์ผ๋์ง ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ด๊ฒ์ ..=
๋ฅผ ์ฐ์ฐ์๋ก ์ถ๊ฐํด๋ ๋ณ๊ฒฝ๋์ง ์์ต๋๋ค. ๋ชจํธํจ์ด ์์ต๋๋ค. ์ค์ํ ๊ฒ์ ์ด์ ..=
๋ฅผ ํ๋์ ์ฐ์ฐ์๋ก ๊ตฌ๋ฌธ ๋ถ์ํ ์ ์์ง๋ง ์ผ๋จ ํ๋์ ์ฐ์ฐ์๋ก ๊ตฌ๋ฌธ ๋ถ์ํ ์ ์๊ฒ ๋๋ฉด ๋ชจํธ์ฑ์ด ์๋ค๋ ๊ฒ์
๋๋ค.
5..
์ ํ์ฌ ์ ํจํ ํจํด์ด ์๋๋ฉฐ ๋ฐ์ฏค ๋ซํ ๊ฐ๊ฒฉ ํจํด๋ ์์ต๋๋ค. ์ฆ, ๋ฐ ํ์ ๊ฐ๊ฒฉ ํจํด์ ๋ถ์กฑ์ ๋ฒ์ ํํ์๊ณผ ๋น๊ตํ ๋ ์ข
์ข
๋ถ์ผ์น์ ์์ธ์ผ๋ก ๊ฐ์ฃผ๋๊ณ ํจํด์ ๋ํด์๋ ๊ตฌํ๋ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด ์์ ํ ์ ์ ์ผ์น๋ฅผ ์ํด ๋์ค์ ํจํด์์ ๊ฐ๊ฒฉ์ ํ์ชฝ์ ์๋ตํ๋ ๊ธฐ๋ฅ์ ์ถ๊ฐํ ์๋ ์์ต๋๋ค.
๋ฐ๋ผ์ @clarcharr์ ๊ด์ฐฐ์ด ํ์ฌ ๋ฌธ๋ฒ์ ๊ณ ๋ คํ ๋ ๋ฐ๋์ ๋ชจํธ์ฑ์ ์ง์ ํ๋ ๊ฒ์ ์๋์ง๋ง, ํจํด์ ..=
๋ฅผ ์ฌ์ฉํ๋ผ๋ ์ ์๊ณผ ์ถฉ๋ํ ์ ์๋ ์ ์ฌ์ ์ธ ๋ฏธ๋ ํ์ฅ์ ๊ณ ๋ คํ ๋ ํ์คํ ๋ชจํธํฉ๋๋ค.
์ด๋ฅผ ์ผ๋์ ๋๊ณ ์ฌ๊ธฐ์ ๋ค๋ฅธ ๊ธฐํธ๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข์ต๋๋ค. ^
๋ ํ์ฌ IIRC์ ํํ์ ์ปจํ
์คํธ์์๋ง ์ฌ์ฉ๋๊ธฐ ๋๋ฌธ์ ์๋นํ ๊ด์ฐฎ์ ๊ฒ ๊ฐ์ต๋๋ค.
(์ง๊ธ์ ๊ตฌ์กฐ์ฒด๋ฅผ ์์ ํํ๊ณ ๊ตฌ๋ฌธ์ ๋์ค์ ์์ ํํ๋ ๋ฐฉํฅ์ผ๋ก ์ด๋ํ๋ ๊ฒ์ด ์ข๋ค๊ณ ์๊ฐํ๋ ๋ ๋ค๋ฅธ ์ด์ ์ ๋๋ค.)
@nagisa RangeFrom ํจํด์ด ์ง์๋๊ธฐ ์ ์ ..=
ํ ํฐ์ด ์ถ๊ฐ๋๋ฉด if let
์ ๋ํ ์ถฉ๋์ ์์ต๋๋ค. x <- y
(์์น) ๋ x < -y
(๋ฏธ๋ง + ์์)์ ๊ฐ์ด ..
์ =
์ฌ์ด์ ๊ณต๋ฐฑ์ ์ถ๊ฐํ์ฌ ๋ช
ํํ๊ฒ ํ ์ ์์ต๋๋ค.
( ^
๋ ๋ฐฐํ์ -or ์ฐ์ฐ์์ด๋ฏ๋ก ํฌํจ ๋ฒ์์ ..^
๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ์์ด๋ฌ๋ํ๋ค๊ณ ์๊ฐํฉ๋๋ค.)
๋ด๊ฐ ์์ฑํ ์์ฒ ๊ฐ์ ๋ฒ์ ์ค ์๋น์๋ ์์ ํ ๋ซํ ์๊ณ ํ๋ ๊ฐ๋ ์๋ชป๋ ๋ฐฉํฅ์ผ๋ก ๋ฐ์ฏค ์ด๋ ค ์์ง๋ง ์ฌ์ ํ ์ถ๊ฐ ๊ตฌ๋ฌธ์ด ํ์ํ์ง ์์ต๋๋ค. 1..(n+1)
์ฐ๊ธฐ ์ด๋ ต์ง ์์ต๋๋ค.
end = T::max_value()์์๋ ์๋ํ์ง ์์ต๋๋ค.
2017๋ 5์ 29์ผ 16์ 33๋ถ์ "Diggory Hardy" [email protected]์ด ๋ค์๊ณผ ๊ฐ์ด ์ผ์ต๋๋ค.
๋ด๊ฐ ์์ฑํ ์์ฒ ๊ฐ์ ๋ฒ์ ์ค ์๋น์๊ฐ ์์ ํ ๋ซํ ์์ต๋๋ค.
์ด์ฉ๋ฉด ํ๋ ๊ฐ๋ผ๋ ์๋ชป๋ ๋ฐฉํฅ์ผ๋ก ๋ฐ์ฏค ์ด๋ ธ์ ์๋ ์์ง๋ง, ์ฌ์ ํ
์ถ๊ฐ ๊ตฌ๋ฌธ์ ํ์์ฑ์ ์ฐธ์กฐํ์ญ์์ค. 1..(n+1) ์ฐ๊ธฐ๊ฐ ๊ทธ๋ ๊ฒ ์ด๋ ต์ง ์์ต๋๋ค.โ
๋น์ ์ด ์ธ๊ธ๋์๊ธฐ ๋๋ฌธ์ ์ด๊ฒ์ ๋ฐ๋ ๊ฒ์ ๋๋ค.
์ด ์ด๋ฉ์ผ์ ์ง์ ๋ต์ฅํ๊ณ GitHub์์ ํ์ธํ์ธ์.
https://github.com/rust-lang/rust/issues/28237#issuecomment-304662258 ,
๋๋ ์ค๋ ๋ ์์๊ฑฐ
https://github.com/notifications/unsubscribe-auth/AApc0ipynL_qrZqUBldOJOX046RNY2H_ks5r-skwgaJpZM4F4LbW
.
๋๋ ๋ฐ ํ์ ๋ฒ์์ ๋ํ ๋ฐฉ๋ฒ์ ..=๋ณด๋ค ์ ํธํฉ๋๋ค.
2017๋ 5์ 29์ผ 16์ 35๋ถ์ "Simonas Kazlauskas" [email protected]๊ฐ ์ผ์ต๋๋ค.
end = T::max_value()์์๋ ์๋ํ์ง ์์ต๋๋ค.
2017๋ 5์ 29์ผ 16์ 33๋ถ์ "Diggory Hardy" [email protected]์ด ๋ค์๊ณผ ๊ฐ์ด ์ผ์ต๋๋ค.
๋ด๊ฐ ์์ฑํ ์์ฒ ๊ฐ์ ๋ฒ์ ์ค ์๋น์๊ฐ ์์ ํ
๋ซํ, ์ด์ฉ๋ฉด ํ๋ ๊ฐ๋ผ๋ ์๋ชป๋ ๋ฐฉํฅ์ผ๋ก ๋ฐ์ฏค ์ด๋ ธ์ ์๋ ์์ง๋ง, ์ฌ์ ํ
์ถ๊ฐ ๊ตฌ๋ฌธ์ด ํ์ํ์ง ํ์ธํ์ญ์์ค. 1..(n+1) ์ด๋ ต์ง ์์ต๋๋ค
์ฐ๋ค.โ
๋น์ ์ด ์ธ๊ธ๋์๊ธฐ ๋๋ฌธ์ ์ด๊ฒ์ ๋ฐ๋ ๊ฒ์ ๋๋ค.
์ด ์ด๋ฉ์ผ์ ์ง์ ๋ต์ฅํ๊ณ GitHub์์ ํ์ธํ์ธ์.
https://github.com/rust-lang/rust/issues/28237#issuecomment-304662258 ,
๋๋ ์ค๋ ๋ ์์๊ฑฐ
https://github.com/notifications/unsubscribe-auth/AApc0ipynL_qrZqUBldOJOX046RNY2H_ks5r-skwgaJpZM4F4LbW
.
๋๋ ๊ทธ๊ฒ์ ๋ํด ์ด๊ฒฌ์ด ์๋ค๊ณ ํ์ ํ๊ธฐ ๋๋ฌธ์ ์ด๋ฏธ ๊ทธ๊ฒ๋ค์ ๊ตฌ์ฑํ๋ ๋ฐฉ๋ฒ์ผ๋ก ํน์ฑ๊ณผ ์ ํ์ ์์ ํํ์ผ๋ฉด ํฉ๋๋ค. ๊ตฌ๋ฌธ์ ๋ํ ๋ฐ์ดํฌ์๋ฉ์ผ๋ก ์ธํด ํต์ฌ ๊ธฐ๋ฅ ์์ฒด์ ์์ ํ๊ฐ ์ง์ฐ๋์ง ์๋๋ก ํ์ญ์์ค.
end = T::max_value()์์๋ ์๋ํ์ง ์์ต๋๋ค.
2^64 ๊ฐ ๋๋ 2^8 ๊ฐ์ ๋ฐ๋ณตํ์๊ฒ ์ต๋๊น? ์๋ฅผ ๋ค์ด u32
์ ๋ง์ง๋ง ๋ช ๊ฐ ๊ฐ์ ๋ํด์๋ง ๋ฐ๋ณตํ๋ ค๋ ๊ฒฝ์ฐ ๋ฃจํ ๋ด๋ถ์ ํ๋๋ฅผ ์ถ๊ฐํ๋ ๊ฒ์ด ๋ ์ฌ์ด ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋ถ๋ถ๋ช
ํ ์ด์ ๋ก 2^B-1
๋ก ๋ฐ๋ณตํ๋ ค๋ ๊ฒฝ์ฐ ๋ฃจํ ๋์ ํญ์ if i == END { break; }
๋ฅผ ๋ถ์ผ ์ ์์ต๋๋ค.
ํ์ค ๋ถํธ ์๋ ์ ์๊ฐ 2^32 ๋๋ 2^64 ๊ฐ์ ์ง์ํ๋ค๊ณ ํด์ ํํ ๊ฐ๋ฅํ ๊ฐ์ฅ ๋์ ๊ฐ์ด ์์ฃผ ์ฌ์ฉ๋๋ ๊ฒ์ ์๋๋๋ค. ๊ทธ๋ฆฌ๊ณ u8
๋ฌด์ธ๊ฐ๋ฅผ ํ๊ณ ์๋ค๋ฉด CPU๊ฐ ์นด์ดํฐ์ u32
๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ๋ ์ฝ๋ค๋ ๊ฒ์ ์์ง ๋ง์ญ์์ค.
๊ทธ๋ฌ๋ ํ์ ๋ฒ์ ์์ฑ๊ธฐ ๊ตฌ๋ฌธ์ด ํ์ํ์ง ์๋ค๊ณ ์๊ฐํ๋๋ผ๋ ๋ณ๊ฒฝ์ ๋ํ ํ์ ์ฃผ์ฅ์ ๋ฐ๋ฐํ ์ ์์ต๋๋ค. ์ค ๊ธ์:/
์ด ๋ค ๊ฐ์ง๊ฐ ๋ชจ๋ ํฌ๊ด์ฑ ์ต์ ์ ํฌ๊ดํ๋ ๊ฒ์ ์ด๋ป์ต๋๊น?
1...10
1>..10
1..<10
1>.<10
๋๋ ๋ถํ๋ฑ ์ฐ์ฐ์๊ฐ ์ ์น์๋ถํฐ ๋ชจ๋ ์ฌ๋์ ๋ง์์ ๋๋๋ ค์ ธ ์๋ค๋ ์ ์ ๊ฐ์ํ ๋ ์ถ๊ฐ ์ค๋ช ์์ด ๊ทธ๋ค์ด ์๋ฏธํ๋ ๋ฐ๋ฅผ ์ดํดํ ์ ์์ด์ผ ํ๋ค๊ณ ์๊ฐํฉ๋๋ค. ํ์ง๋ง ์ด๊ฒ์ด ๋ค๋ฅธ ๋ฐฉ์์ผ๋ก ๊ณ ํต์ด ๋ ์ง๋ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค.
๋๋ ๋ถ๋ฑ์์ ์ ํํ ์ ์์ต๋๋ค.
1...10
1<..10
1..>10
1<.>10
... ๋ง์ง๋ง ์ฌ๋์ด ํ๋ ์นดํธ๋งจ์ฒ๋ผ ๋ณด์ด์ง ์๋๋ก.
@vegai ๊ทธ๋ฆฌ๊ณ ํ์คํ ์ ๊ฑฐ๋์ง ์์ ๊ธฐ์กด a..b
๊ตฌ๋ฌธ์ ์ด๋ป์ต๋๊น? ์๋์, ์๋ก์ด ๊ตฌ๋ฌธ ์ต์
์ ์ ์ํ๋ ๊ฒ์ด ์ด๋ค ๋ฌธ์ ๋ ํด๊ฒฐ๋ ๊ฒ์ด๋ผ๊ณ ์๊ฐํ์ง ์์ต๋๋ค.
ํ , ๋ ๊ฐ์ง "์ ์ฌ์ ๋ชจํธ์ฑ"์ด ์ ๊ธฐ๋์์ต๋๋ค.
if let 5..= x
-- ์ธ๊ธํ ๋ฐ์ ๊ฐ์ด ์ด๊ฒ์ ์ง๊ธ ์ ์ค์ ๋ก ๋ชจํธํ์ง ์์ง๋ง ์ผ์ข
์ ๊ทธ๋ด ์ ์์ต๋๋ค. ๋ฐ๋ฉด์ ์ด๋ฌํ ์ข
๋ฅ์ ๋ชจํธ์ฑ์ ์์ฃผ ๋ฐ์ํ๋ฉฐ ํ ํฌ๋์ด์ ์์ ํด๊ฒฐํฉ๋๋ค. ์ฆ, ํ์์์ ..=
๋ฅผ ํ ํฐ์ผ๋ก ๊ฐ์ฃผํ๋ฉด ๋์ค์ 5..
ํจํด์ ์ถ๊ฐํ๋๋ผ๋ ๋ชจํธํ์ง ์์ต๋๋ค. ..
์ =
์ฌ์ด์ ๊ณต๋ฐฑ์ ์ฐ๊ธฐ๋ง ํ๋ฉด ๋ฉ๋๋ค(์: let 5.. = x
).macro_rules!
back-compat๋ฅผ ์ฒ๋ฆฌํ ์ ์์ต๋๋ค. ์ด์จ๋ ...
๋ฅผ ์ฌ์ฉํ๋ ๊ฒ ์ธ์๋ ์ด๋ฐ ์ข
๋ฅ์ ๋ฌธ์ ๋ฅผ ํผํ ์๋ ์๋ค๊ณ ์๊ฐํฉ๋๋ค.ํฌํจ ๋ฒ์๋ฅผ ์์ ํํ๊ธฐ ์ ์ ๋ฌธ์ #42401๋ ์์ ํด์ผ ํฉ๋๋ค. ์์ ํ ํ์๋ ์์ ์ด ์ฃผ์ ๋ณ๊ฒฝ ์ฌํญ์ด ๋ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ ๋๋ค.
@est31 ์ข์ ์ , ๋ฌธ์ ํค๋์ ์ฒดํฌ๋ฆฌ์คํธ์ ์ถ๊ฐํ์ต๋๋ค.
ํ์ธ๋ str ์ฌ๋ผ์ด์ฑ ์์ฒด๊ฐ ๋ถ์์ ํ๋ฉฐ ํด๋น ๋ฌธ์ ๋ฅผ ์์ ํด๋ ํฌํจ ๋ฒ์๊ฐ ์ ํ ์ฐจ๋จ๋์ง ์์ต๋๋ค.
์ค, @nagisa ๊ฐ ๋ง์ต๋๋ค. ๋ฒ์ ๊ตฌ๋ฌธ๊ณผ ๊ด๋ จ์ด ์์ต๋๋ค. ๋จธ๋ฆฌ์์ ๋ค์ ์ ๊ฑฐ ํ ์ ์์ต๋๊น? ๋ด ์ค์. ๋ฒ๊ทธ๋ get
๊ตฌํ์ ์์ผ๋ฏ๋ก str_checked_slicing
๊ธฐ๋ฅ์ผ๋ก ๋ณดํธ๋ฉ๋๋ค.
impl SliceIndex<str> for ops::RangeToInclusive<usize> {
type Output = str;
#[inline]
fn get(self, slice: &str) -> Option<&Self::Output> {
if slice.is_char_boundary(self.end + 1) {
Some(unsafe { self.get_unchecked(slice) })
} else {
None
}
}
[...]
์ ๊ฑฐ๋จ
๋ ๋ค๋ฅธ ์ฒดํฌ๋ฐ์ค ์ ๋ฐ์ดํธ: PR https://github.com/rust-lang/rust/pull/42134 ์ ์ฉ https://github.com/rust-lang/rfcs/pull/1980 ๋นํ๊ธฐ
๋ฒํ: ์ ์ด๋ ๊ตฌ์กฐ์ฒด๋ฅผ 1.20์์ ์์ ํํ ์ ์๋ ๋ฐฉ๋ฒ์ ๋ฌด์์ ๋๊น?
ํฌ๊ด์ ์ธ ๋ฒ์ ๊ตฌ๋ฌธ์ ์ํด C++์์ ์ ๋ช ํ go-to ์ฐ์ฐ์ ๋ฅผ ์ฐจ์ฉํ๋ ๊ฒ์ ์ด๋ป์ต๋๊น? ๐
@nikomatsakis ๋ฐ @rust-lang/libs(ํ๊ทธํ๋ ๋ฐฉ๋ฒ์ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค), ์์ ํ์ ๋ํด ์ด์ผ๊ธฐํ ์ ์๋๋ก ๊ตฌ์กฐ์ฒด๋ฅผ ๋ค๋ฅธ ์ถ์ ๋ฌธ์ ๋ก ์ด๋ํ PR์ ์ ์ถํ๋ฉด ๊ธฐ๋ถ์ด ์ด๋ป๊ฒ ์ต๋๊น? ๊ฑฐ๊ธฐ? ์๋ก์ด ๊ตฌ๋ฌธ์ด ๊ตฌํ/์ ์ฐฉ๋๊ธฐ๋ฅผ ๊ธฐ๋ค๋ฆฌ๋ ๋์ ์์ ํ๋ฅผ ๋ ๋นจ๋ฆฌ ์งํํ ์ ์๋ ์ข์ ๋ฐฉ๋ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค.
cc @rust-lang/libs (ํ์ ์ฌ๋๋ค๋ง ์์ ์ด๋ ๋ค๋ฅธ ํ์ ํ๊ทธ๋ฅผ ์ง์ ํ ์ ์์)
๊ฐ์ฌํฉ๋๋ค, @eddyb!
@clarcharr ๊ธฐ๋ฐ https://github.com/rust-lang/rust/pull/42275#discussion_r119211211 , ๋๋ ๊ทธ๊ฒ์ด ๊ฐ์ฌ ํ ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค.
๊ตฌ๋ฌธ ์ ์์ ์ํ ๊ธฐ์ฐจ์ ๋๋ฌด ๋ฆ์๋์?
ํ์ฌ๋ ๋๊ตฐ๊ฐ๊ฐ ์ฌ๋ผ์ด์ค์ ๊ฐ์ ํ ๋นํ๋ ค๊ณ ํ๋ ๊ฒ์ฒ๋ผ ๋ณด์
๋๋ค.
for i in a..b {} // [a..b)
for i in a..+b {} //[a..b]
for i in a-..b {} //(a..b)
for i in a-..+b {} // (a..b]
์ด ๊ตฌ๋ฌธ์ ์ฌ์ฉํ๋ฉด ํฅํ ๋ฒ์์ ๋ํ Add
๊ตฌํ์ ์ถ๊ฐํ ์ ์์ต๋๋ค. Add
๊ตฌํ์ด ๋ฌด์์ ํ๋์ง ์ ๋ชจ๋ฅด๊ฒ ๊ธฐ ๋๋ฌธ์ ๊ทธ๊ฒ์ด ๋ฌธ์ ์ธ์ง๋ ์ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค.
ํํ ํ๋ฌ์ค์ ๋์ํฉ๋๋ค. ์ ๋์ฌ๋ก ๋ณ๊ฒฝ๋์์ต๋๋ค.
a..
, ..b
๋ฐ ..
๋ Rust์์ ์ ํจํ ๊ตฌ์กฐ์ด๊ธฐ ๋๋ฌธ์ ์ด๊ฒ์ ์ฌ์ ํ โโ์ํ ์ฐ์ฐ์์ ๋ชจํธ์ฑ์ ์์ฑํฉ๋๋ค :/
a...
/ a..=
/ a..+
๋ ์ ํจํ์ง ์๊ฒ ์ฃ ? ๋์ ์ ํฌํจํ๋ ๋ฌด์ ํ ๋ฒ์๋ฅผ ๊ฐ๋ ๊ฒ์ ์ค์ ๋ก ์๋ฏธ๊ฐ ์๊ธฐ ๋๋ฌธ์
๋๋ค.
๋๋ Add
์ ๋ํด ๋๋ฌด ๊ฑฑ์ ํ์ง ์์ ๊ฒ์
๋๋ค. ๋ฒ์์ ๊ด๋ จํ์ฌ ๋๋ฌด ์ผ๋ฐ์ ์ธ ์ผ์ด ์๋ ๊ฒ ๊ฐ์ต๋๋ค. ์ํ๋ค๋ฉด (x..+y) + z
?
ํธ์ง: ์ ๊ฒฝ์ฐ์ง ๋ง์ธ์, ๋ฐฉ๊ธ ๋น์ ์ด ์๋ฏธํ๋ ๋ฐ๋ฅผ ๊นจ๋ฌ์์ต๋๋ค. ๋ชจํธํ a..+b
์ด๊ฒ ์ฃ ? ์ง๊ธ ๋น์ฅ์ a.. + b
ํฉ๋๋ค.
@daboross ์ด๊ฒ์ด ์ข์ ์์ด๋์ด์ธ์ง ๋์ ์์ด๋์ด์ธ์ง ๋งํ๋ ๊ฒ์ ์๋์ง๋ง ์ด ๊ตฌํ(๋๋ ์ฝ๊ฐ์ ๋ณํ)์ ๋ฏธ๋์ ๋ฒ์์ ๋ํด ์ํ๋ ๊ฒ์ผ ์ ์์ต๋๋ค.
impl<T> Add<T> for RangeFrom<T> where T: Add<T> {
type Output = RangeFrom<T>;
fn add(self, rhs: T) -> RangeFrom<T> {
(self.start + rhs)..
}
}
์ด ํน์ impl์ ์ข์ ์๊ฐ์ผ ์๋ ์๊ณ ์๋ ์๋ ์์ง๋ง ๊ฐ๋ฅํ ๋ฏธ๋์ ์ฌ์ฉ ์ฌ๋ก๋ก ์๊ฐํด๋ด๋ ๋ฐ ๋๋ฌด ์ค๋ ์๊ฐ์ด ๊ฑธ๋ฆฌ์ง ์์์ต๋๋ค. ๊ธฐ์กด ๊ตฌ๋ฌธ ๊ฒฐ์ ์ผ๋ก ์ธํด ์ด๊ฒ ๋๋ ์ด์ ์ ์ฌํ ๊ฒ์ด ์ถ๊ฐ๋ ๊ฐ๋ฅ์ฑ์ ๋ฐฐ์ ํ๋ ๊ฒ์ ์ข์ง ์๋ค๊ณ ์๊ฐํฉ๋๋ค.
๋ด ๋ ๋ค๋ฅธ ๊ด์ฌ์ฌ๋ ...
๋ฅผ ๋ฌด์ํ๋ ์์ ์ ์คํ๋ฅผ ์ธ์ํ๊ธฐ ์ด๋ ค์ด ๊ธฐํ๋ฅผ ์ต์ํํ๊ณ ๊ดํธ๊ฐ ์ถ์ a..+b
์ ๋ ๊ฐ์ง ๋ค๋ฅธ ์๋ฏธ ์ฌ์ด์ ์ฐจ์ด๋ฅผ ๋ง๋ค ์ ์๋๋ก ํ๋ ๊ฒ์
๋๋ค. ๊ทธ ๋ฐฉํฅ์ผ๋ก ๋์๊ฐ๊ฒ ๋ ๊ฒ์
๋๋ค.
๋ํ ํ์ฌ ..
๋ฐ ์ ์๋ ๋์ "์์ ํจ์ ์ํด ์ข์ง ์์ ๊ฒ"์ ๋์ด์ a-..b
๋ฐ a-..+b
๋ํ ํ์คํ ์ ๋น์ฑ์ ์์ง ๋ณด์ง ๋ชปํ์ต๋๋ค. ..=
๋ ๋ค ์๋ ค์ง ์ ํจํ ๊ทผ๊ฑฐ๊ฐ ์์ต๋๋ค.
ํํ์ ๊ตฌ๋ฌธ์ด ๋ชจํธํด์ง๊ธฐ ๋๋ฌธ์ +
๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค.
ํธ์ง: ๋น๋ก <Range as Add<{integral}>>::Output = InclusiveRange
์ ๊ตฌํ์ ๋๋ด๊ธฐ ๋๋ฌธ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์์ ์์ ํ ํฌ๊ด์ ์ธ ๋ฒ์๋ฅผ ๊ตฌํํ๋ ๊ฒ์ด ๊ฐ๋ฅํ ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค.
..!
๋ณํ์ ์ ์ํ ์ ์์ต๋๋ค. ..
์์ฐ์ ์ธ ์ด์จ์ ๊ฐ์ง๊ณ ์์ผ๋ฉฐ ๋ง์ง๋ง ์ ์ ์ถ๊ฐ ๊ฐ์กฐ๋ฅผ ๋์ด ๋ ๋์ ๋๊ฒ ๋ง๋ญ๋๋ค.
๋ฌผ๋ก !
์ฐ์ฐ์์ ์ถฉ๋ํ์ง๋ง ์์งํ ๋งํด์ ๋ฐ์ธ๋ฉ๋ ํ์ ํํ์์ !
๋ฅผ ๋ฃ์ด์ผ ํ๋ ์ํฉ์ ์์ํ ์ ์์์ต๋๋ค.
..!
๋ ์ง๊ด์ฑ์ ๋ฌธ์ ๊ฐ ์์ต๋๋ค. ์์ง ๊ตฌ๋ฌธ์ ์ต์ํ์ง ์์ ์ด๋ณด์๋ ..!
๋ฅผ "์ต๋, ํ์ง๋ง..."์ ์๋ฏธํ๋ ๊ฒ์ผ๋ก ์ฝ๊ฒ ์คํดํ ์ ์์ต๋๋ค.
๋ํ "...์ ๋นํธ ๋ณด์๊น์ง ๋ฒ์"์ ๋ํ ๊ตฌ๋ฌธ๊ณผ ์ถฉ๋ํฉ๋๋ค( +
๋ฅผ ์ฌ์ฉํ๋ ๊ฒ๊ณผ ์ ์ฌํ ์ํฉ์ ๋์ด๊ฒ ๋จ).
๋์ํ๋ค. ๊ทธ๋ฌ๋ ๋ค๋ฅธ ํํธ์ผ๋ก ..=
ํ ๋น ์ฐ์ฐ์ ์ค ํ๋๋ก ์๋ชป ํด์๋ ์ ์์ต๋๋ค.
์ด๊ฒ์ด ํ ๋น ์ฐ์ฐ์๋ผ๋ฉด ๋ฌด์์ ํ ๋นํ์๊ฒ ์ต๋๊น?
@snuk182 ์ ์ ์์ ๋ฐ๋ผ:
a...b // [a; b] shorthand for RangeIncusive
a..-b // [a; b) new Range shorthand
a..b // [a; b) old Range shorthand exists for compatibility
๋ค๋ฅธ ์กฐํฉ์ด ํ์ํ์ง ๊ถ๊ธํฉ๋๋ค. ์ด์จ๋ ๋์ค์ ์ถ๊ฐํ ์ ์์ต๋๋ค.
a-..b // (a; b]
a-.-b // (a; b)
๋ง์ง๋ง ์ต์
์ด ์ฝ๊ฐ ์ด์ํด ๋ณด์ด์ง๋ง. ^_^
๋จํญ ์ฐ์ฐ์(์: a..-b
, a..!b
, a..*b
, a..&b
๋๋ a?..b
)๋ฅผ ํฌํจํ๋ ๊ตฌ๋ฌธ ์ ์์ ์ค๋จํ์ญ์์ค. ๋ฐ์๋ค์๋ค.
..! ์ง๊ด๋ ฅ์ ๋ฌธ์ ๊ฐ ์๋ค. ์์ง ๊ตฌ๋ฌธ์ ์ต์ํ์ง ์์ ์ด๋ณด์๋ ์ฝ๊ฒ ์คํดํ ์ ์์ต๋๋ค..! "~๊น์ง, ๊ทธ๋ฌ๋ ~๊น์ง"๋ฅผ ์๋ฏธํ๊ธฐ ์ํด
..=
๋ ์ง๊ด์ฑ์ ๋ํด ๋์ผํ ๋ฌธ์ ๊ฐ ์์ต๋๋ค. =
์ฌ๋์ ๋๊ตฌ๋ ๊ฐ๋์ด๋ ๋น๊ต๋ฅผ ๊ธฐ๋ํฉ๋๋ค. ..=
๋ณผ ๋๋ง๋ค ์ด ๊ตฌ๋ฌธ์ด ์๋ณ ๋ฌธ์ ๋ฅผ ์๋ฒฝํ๊ฒ ํด๊ฒฐํ๋ค๋ ๊ฒ์ ์ธ์ ํฉ๋๋ค. ์ด ๋ฑํธ๊ฐ ์ฌ๊ธฐ์ ๋ฌด์์ ํ๋์ง ๊ถ๊ธํ์ง ์์ ์ ์์ต๋๋ค.
๋งค์ฐ ์ง๊ด์ ์ด๊ณ ํ์ฌ ๊ตฌ๋ฌธ๊ณผ ์ผ์นํ๋ ์ ์ผํ ์ ์ ๊ตฌ๋ฌธ์ ...
์
๋๋ค. ๊ทธ๋ฌ๋ ๋ฐฐ๊ฐ ์ถํญํ ๊ฒ ๊ฐ์ต๋๋ค.
์๋ก ์จ ์ฌ๋๋ค์ ์ด์จ๋ ๋ฌธ์๋ฅผ ์์ฃผ ๋ด์ผ ํ ๊ฒ์
๋๋ค. ...
๋ฅผ ์ฌ์ฉํด๋ ๊ทธ๋ค์ ๋ฌธ์๋ฅผ ๋ณผ ๊ฒ์
๋๋ค. ์ด๊ฒ์ ํผํ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ..=
์๋ ๋ฉ์ง ๋๋ชจ๋( up to
๋ฐ equal to
)์ด ์์ผ๋ฏ๋ก ์ด ์ฐ์ฐ์์ ๋ํ ๋ฌธ์๋ฅผ ์์ฃผ ๋ณผ ํ์๊ฐ ์์ต๋๋ค.
...
์ฐ์ฐ์๊ฐ ๊ทธ๋๋ก ์ ์ง๋๊ณ ๋์ ..
์ฐ์ฐ์๋ฅผ ..โต
, ์ฆ ๋ ๊ฐ์ ์ ๊ณผ ํ๋์ ๊ณต๋ฐฑ์ผ๋ก ๋ณ๊ฒฝํ๋ฉด ์ด๋ป๊ฒ ๋ ๊น์? ' ๋ฌธ์๊ฐ ์๋ ์ด์ ๋ ์ด ์นํ์ด์ง์ ์ผ๋ฐ ๊ณต๋ฐฑ์ด ํ์๋์ง ์๊ธฐ ๋๋ฌธ์
๋๋ค. ๊ทธ๊ฒ์ ๊ณต๋ฐฑ์ด ์ค์ํ ์ธ์ด์์ ํ ๊ณณ์ผ ๊ฒ์
๋๋ค. ๊ฐ์ ๋ชจ๋ ์ฝ๋ ๋๋ฌธ์ ๊ทธ๊ฒ์ ๋ํ, ์ฃผ์ ๋ณ๊ฒฝ ๋ a..b
์๋๋ผ ๊ทธ๋ฐ ์ด์์๊ฐ ์์์ ๋ถํ ๊ฒ ..
, ๊ทธ๋ฆฌ๊ณ ์กฐ์ธ๋ ์ ์ดํ์ ์ ์ด๋ ํ๋ ๊ฐ์ ๊ณต๊ฐ์ ์ถ๊ฐ ํ ์ ์์ต๋๋ค. ๊ณต๊ฐ์ด ์๊ฐ์ ์ผ๋ก ์ถฉ๋ถํ ๊ตฌ๋ณ๋๋๋ก ๋ง๋ ๋ค๊ณ ์๊ฐํฉ๋๋ค.
a.. b
a...b
@tommit ์์งํ ์ข์ ์๊ฐ์ด ์๋๋ผ๊ณ ์๊ฐํฉ๋๋ค.
์ฐ์ฐ์๋ ํ์ฌ ๊ณต๋ฐฑ์ ๋ํด ๋งค์ฐ ์ ์ฐํฉ๋๋ค. ์๋ฅผ ๋ค์ด a..b
๋ฐ a .. b
๋ ๋์ผํฉ๋๋ค. ์ด๋ a+b
๋ฐ a + b
์ ๊ฐ์ ๋ค๋ฅธ ์ฐ์ฐ์์ ์ผ๊ด์ฑ์ ์ ์งํ๊ธฐ ์ํ ๊ฒ ๊ฐ์ต๋๋ค. ๋ฌผ๋ก ์ด๋ค์ ๋์ผํ ์์
์ ์ํํ๋ฉฐ ์ฌ๋๋ค์ด ๋ค๋ฅธ ๊ตฌ๋ฌธ ์คํ์ผ์ ์ฌ์ฉํ ์ ์๋๋ก ํฉ๋๋ค. ๋์๊ฒ ๋ฌผ์ด๋ณด๋ฉด ์ข์ ์ผ์ด์ผ!
์ฌ๊ธฐ์ ์ถ๊ฐํ๊ธฐ ์ํด ..=
ํ๊ธฐ๋ฒ์ <=
๋ฐ >=
ํ๊ธฐ๋ฒ(_ํฌํจ_์ผ๋ก ๊ฐ์ฃผ๋จ)๊ณผ ์ผ์นํฉ๋๋ค.
๋ค๋ฅธ ๊ฐ๋ฅ์ฑ์ด ์๋์ง ํ์ธํ๋ ๊ฒ์ ํญ์ ์ข์ง๋ง ์ด๊ฒ์ ์๋ง๋ ์ฌ๋ฐ๋ฅธ ํด๊ฒฐ์ฑ ์ด ์๋ ๊ฒ์ ๋๋ค.
๋์ํ๋ค. <=
๋ฐ >=
<=
์ ๋น๊ตํ ๋ ..=
๋ ๊ทธ๋ด๋ฏํ๊ณ ๋
ผ๋ฆฌ์ ์ผ๋ก ๋ณด์
๋๋ค.
๊ทธ๊ฑด ๊ทธ๋ ๊ณ , ...
์ ํฌ์ด๊ฑฐ๋ ..=
๋ชจ์์ด ๋ง์์ ๋ค์ง ์๋ ๊ฒฝ์ฐ ํํ ์๋ฃจ์
์ ..=
๋ํ ํน์ ํฉ์๊ฐ ์๋ FiraCode ์ ๊ฐ์ ํ๋ก๊ทธ๋๋ฐ ํฉ์์ ํจ๊ป ์ผ๋ถ ๊ธ๊ผด์ ์ฌ์ฉํ๋ ๊ฒ์
๋๋ค ..=
, ...
๋งคํ๋๊ฑฐ๋ โฉท, โฉฆ ๋๋ โ์ ๊ฐ์ ์ด์ํ ๊ฒ๊น์ง ๋งคํ๋ ์ ์์ต๋๋ค.
๋ฒ์๋ฅผ ์ฌ์ฉํ์ฌ ๊ธฐ์กด์ ๋ชจ๋ ๋
น ์ฝ๋์ ๋ํ ์ฃผ์ ๋ณ๊ฒฝ... ๋์ฐฉ ์ ์ฌ๋ง,
์ฃ์กํฉ๋๋ค. ๋๊ตฐ๊ฐ๊ฐ ์ ๋ง ์ฌ๊ฐํ ํ์ ํธํ ์ ์์ ๊ฐ์ง๊ณ ์๋ค๋ฉด
์ ๊ธฐ๋ ์ฐ๋ ค ์ฌํญ์ ํด๊ฒฐํ๊ณ ๋
ผ์๋์ง ์์์ต๋๋ค.
์ด๋ฏธ, ๋ค์ด ๋ณด๊ฒ ์ต๋๋ค. ํ์ง๋ง ์ ์ด๋ ํ์ค์ ์ ์งํฉ์๋ค, ์?
์ด ์ค๋ ๋๋ ์์ ๊ฑฐ ์ฐฝ๊ณ ๋ก ๊ฐ๋ ์ฐจ ์๊ณ ํ์ ์ด๋ฏธ ๊ฒฐ์ ์ ๋ด๋ ธ์ต๋๋ค.
๊ทธ๊ฒ์ ํด๋ฆฌ์ด ํ ๋์ ๋ฐ์
๋๋ค.
์ด์จ๋ , ์ค์ ๊ตฌ๋ฌธ์ ๋ํด ๊ณ์ํด์ ๋ง์ ๋ฐ์ดํฌ ์ ฐ์ด๊ฐ ์๋ ๊ฒ ๊ฐ์ต๋๋ค. ํต์ฌ ๊ธฐ๋ฅ์ ์ฌ์ฉํ ์ ์๋๋ก ์ต์ํ ๊ตฌ์กฐ์ฒด, ํน์ฑ ๋ฐ impls๋ฅผ ์์ ํํ๊ธฐ ์ํด #43086์ ์ ์ถํ์ต๋๋ค(์์๊ฐ ์๋ ๊ฒ ๊ฐ์ต๋๋ค. ์์ @retep998 ์ฃผ์ ์ฐธ์กฐ).
๋ฐฉ์ ์ฝ๋ผ๋ฆฌ๋ ..
๊ฐ ๋์นญ ๋ชจ์์ด์ง๋ง ๋น๋์นญ ์๋ฏธ ๋๋ฌธ์ ์ค์ ๋ก ์ฌ๊ธฐ์์ ์ง์ง ๋ฌธ์ ๋ผ๋ ๊ฒ์
๋๋ค. "์ณ์ ์ผ"์ ์๋ง๋ ๊ทธ๊ฒ์ ๋น์ถ์ฒํ๋ ๊ฒ์ ์๋ฐํ ๊ฒ์ด์ง๋ง, ๋๋ฌด ๋ง์ ์ฝ๋์์ ์ด๋ฏธ ๊ทธ๊ฒ์ ์ฌ์ฉํ๊ณ ์๊ธฐ ๋๋ฌธ์ ๊ทธ๋ ๊ฒ ํ ์์ง๋ ์์ต๋๋ค.
์๋ฒฝํ๊ฒ ์ผ๊ด๋ ...
(๋์นญ ๋ชจ์, ๋์นญ ์๋ฏธ)๋ฅผ ์ฌ์ฉํ์ง ์๋ ๊ฒ์ด ์ฌ์ด ๋ฐฉ๋ฒ์ด์ง๋ง ..=
์ ๋ ๋ค๋ฅธ ์ผ๊ด์ฑ ์๋ ์ฐ์ฐ์๋ฅผ ์ถ๊ฐํด์ผ ํฉ๋๋ค. ์ด์ ์ ์๋ชป๋ ๋์์ธ์ ํด๊ฒฐํ๊ธฐ ์ํด ๋์ ๋์์ธ์ ์ถ๊ฐํ๋ ๊ฒ์ฒ๋ผ ๋ณด์
๋๋ค.
์ด ์ด์ค ๋ถ์ผ์น ๋๋ฌธ์ ์ด๊ฒ์ ๋ ๋ค๋ฅธ ๋ฌธ์ ๊ฐ ์์ต๋๋ค. ๋ง์ง๋ง ๋ ๊ฐ์ ํฌํจ ๋ณํ์ ์ถ๊ฐํ๋ ์ข์ ๋ฐฉ๋ฒ์ด ์์ต๋๋ค(์์ชฝ์ ๋ฐฐํ์ ์ด๋ฉฐ ์ผ์ชฝ์๋ง ๋ฐฐํ์ ). ..
๋ฐ ..=
๋ชจ๋ ์ผ์ชฝ์ ์ด๋ฏธ ์์์ =
๊ฐ ์์ผ๋ฏ๋ก ์ด๋ฅผ ์ด๋ป๊ฒ๋ ๋ฌดํจํํด์ผ ํฉ๋๋ค. ์๋ง๋ <
ํฉ๋๋ค. ๋ฐ๋ผ์ ๋ค์๊ณผ ๊ฐ์ด ๋ณด์ฌ์ผ ํฉ๋๋ค.
<..=
๋ํ (a; b]
<..
๋ํ (a; b)
์ ๊ท ์ด๋ฏผ์๋ก์ ์ด๊ฒ์ด ๋ฌด์์ ์๋ฏธํ๋์ง ์ฌ๋ฐ๋ฅด๊ฒ ์ถ์ธกํ๋ ํ์ด์ ๋น๋๋ค. ๊ทธ๋์ ๊ทธ๋ค์ ์๋ง๋ (์ ๋นํ๊ฒ) ๊ฒฐ์ฝ ์ถ๊ฐ๋ ๊ฒ์ผ๋ก ๊ฐ์ฃผ๋์ง ์์ ๊ฒ์ ๋๋ค.
..
๊ฐ ํ๊ณ ํ์ง ์๊ฑฐ๋ ์กด์ฌํ์ง๋ ์๋๋ค๋ฉด, ์ด ๋ชจ๋ ๊ฒ์ ๋ํ ์ผ๊ด๋ ๋์์ธ์ ์ฒ์๋ถํฐ ์์ํ๋ ๊ฒ์ด ๊ทธ๋ ๊ฒ ์ด๋ ต์ง๋ ์์ ๊ฒ์
๋๋ค. ์๋ฅผ ๋ค๋ฉด ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
..
(๋๋ ...
)์ ๋ํ [a; b]
..<
๋ํ [a; b)
<..
๋ํ (a; b]
<..<
๋ํด (a; b)
๋ง์ง๋ง ๋ ๊ฐ์ง ๋ณํ์ด ์ด๋ ์์ ์์ ์ ์ฉํ ์ ์๋ค๋ ๋๋์ด ๋ญ๋๋ค. ์ ๋ง ๋นจ๋ฆฌ ๊ทธ ๊ฒฝ๋ก๋ฅผ ์ฐจ๋จํด์ผ ํฉ๋๊น? ์ด๋ค ๊ฒฝ์ฐ์๋, ์ ์ผํ ์ด์ ๋ ์ ํ ..=
๋นํ ์ด์ ..
ํจ์ฌ ๋ ์์ ์ ์ฝ๋๋ฅผ ๊นจ๋๋์ง๋ง ๊ธฐ๊ปํด์ผ ํ์์
, ์ถํ ์๋ฌด๊ฒ๋ ํ ๊ฒ์ด๋ค.
_ํธ์ง: ๋ ๋ช ํํ๊ฒ ํ๊ธฐ ์ํด ์์ ์ ๋ช ๊ฐ์ง ์ค๋ช ์ ์ถ๊ฐํ์ต๋๋ค._
..
...
๋๋ ..=
์๋๋ผ ์ฌ๊ธฐ์ ์ค์ ๋ฌธ์ ๋ผ๋ @rkarp์ ์๊ฒฌ์ ๋์ํฉ๋๋ค. ๋น๋์นญ ์๋ฏธ๋ ๋ค๋ฅธ (์ธ๊ธฐ) ์ธ์ด๋ ์ฌ์ค์ ๋์นญ ์๋ฏธ๋ฅผ ํ ๋น ํ ๊ฒ์ ๊ณ ๋ คํ๊ณ ํนํ ๋์๋ค. ์๋ฅผ ๋ค์ด Kotlin, Ruby ๋ฐ Haskell์ ๋ชจ๋ 5๊ฐ 3..5 ๋ฒ์์ ์๋ ๊ฒ์ผ๋ก ๊ฐ์ฃผํฉ๋๋ค. ์ํ ๋
ผ๋ฌธ๋ ๊ทธ๊ฒ์ ์ ํธํ๋ ๊ฒ ๊ฐ์ต๋๋ค. ์ฌ๊ธฐ์ ์ต์
์ ์ํฉ์ ์ด๋ณด์๊ฐ Rust์์ 3..5์ ๋์์ ์ถ์ธกํ ๊ธฐํ๊ฐ ์๋ค๋ ๊ฒ์
๋๋ค. 4์ 4๋ง ๋ฒ์ 3..5(์ ์ ๋ํ ๋ฐ๋ณต)์ ๊ตฌ์ฑ์์ด๋ผ๊ณ ๊ฒฐ์ ํ๊ฑฐ๋ ๋ ๋ค 3๊ณผ 5๋ ๊ทธ ์์ ์์ต๋๋ค('์ฐ๋ฆฌ๊ฐ ๋ณผ ์ ์๋ ๋ชจ๋ ๊ฒ'๊ณผ ์ ์ ์ธ์ฝ์ ๋ฐ๋ณตํจ).
๊ทธ๋ฌ๋ ์ด๊ฒ์ ๋ณ๊ฒฝํ๋ ๊ฒ์ด ์ด๋ ต๋ค๋ ์ ์๋ ๋์ํ์ง ์์ต๋๋ค. @adelarsq ์ ์์ ๋น๊ต์ ๊ณ ํต ์์ด ๊ตฌํ๋ ์ ์๋ค๊ณ ์๊ฐํฉ๋๋ค. ์ฐธ๊ณ ๋ก:
[1..4] // 1, 2, 3, 4
[1..4[ // 1, 2, 3
]1..4] // 2, 3, 4
]1..4[ // 2, 3
์ ๋ชจ๋ ๋ฐ์ x..y
(๋๊ดํธ์์ด์ด)๋ก ๋ฒ์ญ ๋ ์ [x..y[
์ ์ปดํ์ผ๋ฌ ๊ฒฝ๊ณ ๋ฅผ ๋ฐฉ์ถํ๋ค. ๋ช ๊ฐ์ง ๋ฆด๋ฆฌ์ค ํ์ ์ปดํ์ผ๋ฌ๋ ๋จ์ํ "๋ฒ ์ด" ๋ฒ์ ํ๊ธฐ๋ฒ ์ปดํ์ผ์ ๊ฑฐ๋ถํ ์ ์์ผ๋ฉฐ ์ ํ๊ธฐ๋ฒ์ผ๋ก ์๋ ๋ณํํ๋ ๋๊ตฌ๋ฅผ ์ ๊ณตํ ์๋ ์์ต๋๋ค.
https://github.com/rust-lang/rust/issues/28237#issuecomment -274216603 ์ด๋ ์๋ก์ด ์์ด๋์ด๊ฐ ์๋๋ฉฐ ์ด๋ฏธ ์ธ๊ธํ ์ด์ ๋ก ์ฌ์ฉํ ์ ์์ต๋๋ค.
๋๋ ์ฐ๋ฆฌ๊ฐ ๋ค๋ฆ๊ฒ ์๊ฒ ๋ ์ด์ ์ ๊ฐ์ง๊ณ ์ธ์ด๋ฅผ ์ฒ์๋ถํฐ ๋์์ธํ๋ค๋ฉด ๋ฐฐํ์ ๋ฒ์์ ํฌ๊ด์ ๋ฒ์์ ๊ตฌ๋ฌธ์ ํจ๊ป ๊ณ ๋ คํ๊ธฐ๋ฅผ ์ํ ๊ฒ์ด๋ผ๋ ์๊ฐ์ ์ ๋์ ์ผ๋ก ๋์ํฉ๋๋ค. ..=
๋ ํฌ๊ด์ ์ธ ๋ฒ์์ ๋ํ ์ด์์ ์ธ ์ฐ์ฐ์๊ฐ ์๋๋ผ๊ณ ์๊ฐํฉ๋๋ค. ๊ทธ๊ฒ์ ๋จ์ํ ํ์ฌ ํ
์ด๋ธ์ ์๋ ์ต์ ์ ์ ํ์
๋๋ค. ๊ทธ๋ฌ๋ ํ์ฌ์ ๋ฐฐํ์ ๋ฒ์ ์ฐ์ฐ์๋ฅผ ๋ ์ด์ ์ฌ์ฉํ์ง ์๋ ๊ฒ์ ์ง๋์น๊ฒ ๊ณ ํต์ค๋ฝ๊ณ ๊ธฐ์กด์ Rust ์ฌ์ฉ์์ ํ๋ก์ ํธ์ ๋ถ์พ๊ฐ์ ์ค ๊ฒ์
๋๋ค.
์๋ ํ ์ ์๋ ๋ค๋ฅธ ์๋ง์ ์ ์ ..@
์ ์๋ ๊ฒ์ ๋ณธ ์ ์ด ์์ผ๋ฉฐ x..@y
๊ฐ ์ฐ์๋๋ ๊ฒ ๊ฐ์ต๋๋ค. ๋ฌธ์ ๋ ํ์ฌ ์ ์๋ณด๋ค ๋ ์ค๋๋ ฅ ์๋ ๊ฒ์ ์ฐพ๋ ๋์์ ๋ชจํธํจ์ ์ ์งํ๋ ๊ฒ์
๋๋ค.
๋์นญ์ ๋ํ ๋ด๊ฐ ๊ฐ์ฅ ์ข์ํ๋ ๊ด์ ์ผ๋ก 2๊ฐ์ ์ @ssokolow ์ ์๊ฒฌ ์ ๊ฐ์กฐํ๊ณ ์ถ์์ต๋๋ค.
..4
์๋ < 4
ํฌํจ๋์ด ์์ต๋๋ค...=4
์๋ <= 4
ํฌํจ๋์ด ์์ต๋๋ค.ํฌํจ ๋ฒ์๋ง ํ์ํ๋ค๊ณ ์๊ฐํฉ๋๋ค. ๋ ๊ฐ๋จํฉ๋๋ค.
ํญ์ + 1 ๋๋ -1์ ์ถ๊ฐํ์ฌ ๋ฒ์๋ฅผ ๋ณ๊ฒฝํ ์ ์์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ .. ์ด ๋ ๋ซ์ต๋๋ค. .. ๊ฐ ... ๋ณด๋ค ๊ฐ๋จํ๊ธฐ ๋๋ฌธ์
๋๋ค.
@AlexanderChen1989 ์ด ์ค๋ ๋์ ์ฌ๋ฌ ๊ฒ์๋ฌผ์์ ์ด์ ์ ๋งํ๋ฏ์ด ..
์ ์๋ฏธ๋ฅผ ๋ณ๊ฒฝํ๋ฉด ๊ธฐ์กด ์ฝ๋๊ฐ ์์๋๊ธฐ ๋๋ฌธ์ ๋ถ๊ฐ๋ฅํฉ๋๋ค.
๊ฒ๋ค๊ฐ ์ค์ ๋ก ๊ทธ๋ ๊ฒ ๊ฐ๋จํ์ง๋ ์์ต๋๋ค. ํนํ +1
๋ฐ -1
๋ ์ ์ ์ค๋ฒํ๋ก/์ธ๋ํ๋ก๋ฅผ ์ ๋ฐํ ์ ์์ต๋๋ค.)
๋ค์ ์ nightly
(ํฌํจ ๋ฒ์ ๊ตฌ๋ฌธ์ ๋ํ ์ด์ ํ๋ณด๋ฅผ ํตํด)์์
#![feature(inclusive_range_syntax)]
fn main() {
let max = 255u8;
let user_provided = 0u8;
for x in 0...user_provided-1 {
println!("(0 to 0, exclusive via 'inclusive - 1'): {}", x);
}
for x in 0..max+1 {
println!("(0 to 255, inclusive via 'exclusive + 1'): {}", x);
}
}
์ธ์ด ํ์ด ๊ฒฐ์ ์ ๋ด๋ฆฐ ์ดํ๋ก 8๊ฐ์ Dead on arrival ๊ตฌ๋ฌธ ์ ์์ด ๋ง๋ค์ด์ก์ต๋๋ค. ์๋ก ์ค์ ๋ถ๋ค์ ๊ธ์ ์ฝ์ด์ฃผ์ธ์. ์ฐ๋ฆฌ๊ฐ ์ฝ์ํ ๊ฒฐ์ ์ ๋ด๋ฆฌ๋ ๋ฐ์๋ ์์ฃผ ์ข์ ์ด์ ๊ฐ ์์ต๋๋ค.
IMHO OP๋ ์ด ์ค๋ ๋์์ ๋ ์ด์ ๊ตฌ๋ฌธ ๋ ผ์๊ฐ ์์ด์ผ ํ๋ฉฐ ๋ฐฐํ์ ๋ฒ์ ๊ตฌ๋ฌธ(์: (a, b) ๋ฐ (a, b] ๋ฒ์)์ ๋ํ ์ ์์ ๋ค๋ฅธ ์ค๋ ๋๋ก ์ด๋ํด์ผ ํจ์ ์ง์ ํ๋๋ก ์ ๋ฐ์ดํธ๋์ด์ผ ํฉ๋๋ค.
ํ์ฌ ๊ณํ์ ์์ ํํ๊ธฐ ์ํด ์ํํด์ผ ํ๋ ์์ ์ ๋ํด์๋ง ์ด์ผ๊ธฐํด์ผ ํฉ๋๋ค.
@clarcharr ๋๋ ๋๋ถ๋ถ ์ผ๋ฐฉ์ ์ธ ๊ฒฐ์ ์ ๋ด๋ฆฌ๊ณ ๊ทธ๊ฒ์ OP์ ์ถ๊ฐํ์ต๋๋ค. ์ข์ ์๊ฐ์ ๋๋ค. ์์์ด ๊ณ์๋๋ฉด ์ค๋ ๋๋ฅผ ์ ๊ทธ๋ ๋ฐ ํฌํํ๊ฒ ์ต๋๋ค.
์๋
ํ์ธ์, ์ ๋ ์ฒ์์ด๊ณ ์ด ์์
์ ์์ํ๊ณ ์ถ์ต๋๋ค. PR์ ์์ฑํ์ฌ ..=
๋ฅผ ํจํด์์ ...
์ ๋์์ด๋ก ์ถ๊ฐํ๊ณ ํํ์์์ ...
๋ฅผ ๋ ์ด์ ์ฌ์ฉํ์ง ์์ผ๋ฉฐ ๊ตฌ๋ฌธ์ด ๋ค์์ผ๋ก ๋ณ๊ฒฝ๋์๋ค๋ ์ค๋ฅ๋ฅผ ํ์ํ๋ ค๊ณ ํฉ๋๋ค. ..=
. ์ด ์๋ฆฌ๊ฐ ๋ง์ต๋๊น?
@Badel2 ๋ฉ์ง๋ค์ . ์ค์ ๋ก ์์ํ์ต๋๋ค. ๊ณง ๋ด ์ง์ ์ ํธ์ํ๊ณ ์ฌ๊ธฐ์ ์ฐ๊ฒฐํ ๊ฒ์ ๋๋ค.
@durka ๋ช ํํ @Badel2 ๊ฐ ๊ทํ์ ์ง์ ์์ ์์ํ๋๋ก ํ์๊ฒ ์ต๋๊น? impl ๊ธฐ๊ฐ ์์ ์ ์ผ๋ถ๋ก ๊ทธ๋ค์ ๋ฉํ ๋งํ ์ ์์ต๋๊น? ๊ทธ๋ค์ Gitter ์ฑ๋์ ์์ต๋๋ค.
๋๋ ๋ํ ์ค์ ๋ฌธ์ ๊ฐ ..
์ด๋ผ๋ ๋ฐ ๋์ํฉ๋๋ค. (์ด๊ฒ์ ๊ธฐ์กด ์ฝ๋๋ฅผํ์ง ๊นฐ __not__ ๊ฒ ํ ๋ฒ์ ๊ต์ฒดํ์ง ์๋, ๊ทธ๋์) ๊ทธ๋์, ๋ ์ ๋ฆฌํ ์๋ฃจ์
์ ๋นํํ๋ ๊ฒ์
๋๋ค ..
๊ฐ์ ์ฐฌ์ฑ ..<
์ฌ์ด (๊ฐ์์ ๊ฒ์
๋๋ค ํผ๋์ a..<b
๋ฐ (a..)<b
, ..
๋ ๊ฒฐ๊ตญ ์กด์ฌํ์ง ์๊ฒ ๋ฉ๋๋ค.
@hyst329 ์ด๋ฏธ
์ฒซ ๋ฒ์งธ ๊ฒ์๋ฌผ์ ๊ตต์ ๊ธ์จ์ฒด๋ก "์ด ์ค๋ ๋์์ ๋ ์ด์ ๊ตฌ๋ฌธ ๋ ผ์๊ฐ ์์ด์ผ ํฉ๋๋ค."๋ผ๊ณ ๋งํฉ๋๋ค.
๊ทธ๊ฒ์ ์ ์ณ๋๊ณ , ๋น์ ์ด ์ค๋ช ํ๋ ๊ฒ์ ๊ธฐ์กด ํ ๋ก ์ ์ฝ์ง ์์ ๋ค๋ฅธ ์ฌ๋๋ค์ ์ํด ์ด๋ฏธ ์ฌ๋ฌ ๋ฒ ์ ์๋์์ผ๋ฉฐ ์คํ ๊ฐ๋ฅํ ์ต์ ์ด ์๋ ์ด์ ์ ๋ํ ์๋ต์ผ๋ก ์ฌ๋ฌ ๊ฐ์ง ์ด์ ๊ฐ ์์ต๋๋ค.
์ด๊ฒ์ด ๊ฑด์ค์ ์ด์ง ๋ชปํด์ ์ฃ์กํ์ง๋ง ..=
๋ฅผ ๋ณด๊ณ ๊ทธ๊ฒ์ด ๋ฌด์์ธ์ง ๊ธฐ์ตํ๋ ค๊ณ ํ ๋๋ง๋ค +=
๋๋ <<=
์ ์ ์ฌํ ํ ๋น ์ฐ์ฐ์์ฒ๋ผ ๋ณด์
๋๋ค. ๊ทธ๋ ์ง ์๋ค๋ ๊ฒ์ด ๋งค์ฐ ํผ๋์ค๋ฝ๊ฒ ๋๊ปด์ง๋๋ค. (์๋ฅผ ๋ค์ด " ..=
๊ตฌ๋ฌธ์ ๋ํ ์ด๊ธฐ ์ง์" https://this-week-in-rust.org/blog/2017/10/03/this-week-์ ๊ฐ์ด ์ปจํ
์คํธ์์ ๋ฒ์ด๋ฌ์ต๋๋ค. ๋
น์ฌ์ง ์๋-202/)
@SimonSapin ์์์๋ณด๋ค ๊ฑด์ค์ ์ธ ๋ฐฉ์์ผ๋ก ๋์ผํ ๋นํ์ ํํํ์ผ๋ฉฐ ๋์ ..^
๋ฅผ ์ ์ํ์ต๋๋ค. https://github.com/rust-lang/rust/issues/28237#issuecomment -304325663
๋๋ฅผ ์ํด, ๋๋ณ ํ๋์ ํฐ ํฌ์ธํธ ..=
(๊ฐ์ง๊ณ ์๋ ์ ์ํ๊ณ ์ผ๊ด์ฑ ์ ๋ ฌ์
๋๋ค ..<
๋
์ ๋ฐ ..
ํฌ๊ด์ ์ธ ๋ฒ์์ ๋ํ ์ฐธ์กฐ). ์ด๊ฒ์ ..=
์ ํ์ ๋ฌธ์ ๊ฐ ์์์ต๋๋ค.
@SimonSapin ๋๋ ๊ทธ๊ฒ์ ์์ ํ ๋ง์กฑํ๋ ์ฌ๋์ด ์๋ค๊ณ ์๊ฐํฉ๋๋ค. ๋ฌธ์ ๋ ๋ถํํ๋ ๋ ๋์ ๋์์ด ์๋ค๋ ์๋ฐฑ ๊ฐ์ ์๊ฒฌ์ด ์๋ค๋ ๊ฒ์ ๋๋ค.
์๋ฌด๊ฒ๋ ํ์ง ์๋ ๊ฒ๋ณด๋ค ๋๋ฅผ ์ค๋ํ๊ธฐ ์ํด ๋ฌ์ฑํ ์ด ํจ์น ๋ ํ์ฌ์ ํจํด ๊ตฌ๋ฌธ์ ์๋ง์ผ๋ก ๋ง๋๋ ๊ฒ๋ณด๋ค ์์ง ์ผ์ด์ค๋ง ์ฒ๋ฆฌํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
..
ํจํด์ ์ฌ์ฉ ์ฌ๋ก๋ ๊ฑฐ์ ์์ผ๋ฉฐ ํญ์ ๊ทธ๊ฒ ์์ด๋ ์ฒ๋ฆฌํ ์ ์์ต๋๋ค.
...
๋ ์ค์ ๋ก ํ์ํ ํํ์์์ RangeInclusive
๋๋ (Bound<T>, Bound<T>)
๋ก ๋์ฒด๋ ์ ์์ต๋๋ค. ๋ ์ฅํฉํ์ง๋ง ์ดํดํ๊ธฐ ์ฝ์ต๋๋ค.
@UtherII
...๊ทธ๋ฆฌ๊ณ ๋๋ ์ปดํ์ผ๋ฌ์ "You can't use inclusive range syntax on stable" ๋ฉ์์ง์ ์ํด ๋ฏธ๋ฌํ ๋ฒ๊ทธ๋ก๋ถํฐ ๋ด๊ฐ ๊ตฌ์๋ฐ์์ ๋ ...
๊ฐ ์ ์ง๋ ์ ์๋ค๊ณ ํ์ ํ์ต๋๋ค.
์ฌ๋ฌ ๋ฒ ์ฐ์์ผ๋ก ๋น ๋ฅด๊ฒ ๋๋ฅผ ๋ ์ค์๋ก .
๋๋ฌด ๋ง์ด(๋๋ ๊ด๋ จ๋ ์ญํ์ ๊ฐ์ํ ๋ ํ ๋ฒ ๋๋ฌด ์ ๊ฒ) ๋๋ฅด๋ ๊ฒ์ ๋๋ฌด ์ฝ์ต๋๋ค.
" ..=
์ ํจํด์์ ...
๋์์ด๋ก ์๋ฝํ๊ณ ํํ์์์ ..=
๋ฅผ ์๋ฝํ๋๋ก ๋ณ๊ฒฝ"์ ์ฒดํฌํ์ต๋๋ค. ์ด๋ฏธ #44709 ์ดํ์ ๊ฒฝ์ฐ์ด๋ฏ๋ก dotdoteq_in_patterns
๋ฐ inclusive_range_syntax
๊ธฐ๋ฅ. ๋จ์ ๊ฒ์ ๋ฌธ์ํ์ ์์ ํ๋ฟ์
๋๋ค.
ํฌํจ ๋ฒ์๋ฅผ 1.26 (3์ 30์ผ ๋ฒ ํ, 5์ 11์ผ ์์ ) ๋๋ ๊ทธ ์ด์ ์ผ๋ก ์์ ํํ๊ณ ์ถ์ต๋๋ค. ์์ ํ PR์ด #47813์ผ๋ก ์ ์ถ๋์์ต๋๋ค.
๋ค์ 3๊ฐ์ง ๊ธฐ๋ฅ์ด ์์ ํ๋ฉ๋๋ค.
inclusive_range_syntax
โ ํํ์์ a..=b
๋ฐ ..=b
๊ตฌ๋ฌธ:
for i in 1..=10 {
println!("{:?}", &a[..=i]);
}
dotdoteq_in_patterns
โ ํจํด์ a..=b
๊ตฌ๋ฌธ:
match c {
b'0'..=b'9' => c - b'0',
b'a'..=b'z' => c - b'a' + 10,
b'A'..=b'Z' => c - b'A' + 10,
_ => unreachable!(),
}
(์ฐธ๊ณ : a...b
๊ตฌ๋ฌธ์ ์ฌ์ ํ โโ๊ฒฝ๊ณ ์์ด ํ์ฉ๋ฉ๋๋ค.)
inclusive_range
โ std::ops::{RangeInclusive, RangeInclusiveTo}
์ ํ ๋ฐ ํด๋น ํ๋:
let r = 1..=10;
assert_eq!(r.start, 1);
assert_eq!(r.end, 10);
@alercah ๊ฐ ์ฌ๋ฌ ๋ฌธ์ PR์ ์ ์ถํ์ต๋๋ค. ๊ฐ์ฌํฉ๋๋ค!
๋ค์์์ ํ ์คํธ ์ผ์ด์ค๋ฅผ ์ฐพ์ ์ ์์ต๋๋ค.
run-pass/range_inclusive.rs
โa..=b
, ๋ฐ๋ณต์, ์ฌ๋ผ์ด์ค ์ธ๋ฑ์ค, ..=
์ฐ์ฐ์์ ์ฐ์ ์์ ๋ฐ ์ ํ ๊ฒ์ฌ ๋์๊ณผ ๊ฐ์ ๊ธฐ๋ณธ ํ
์คํธ.libcore/tests/iter.rs
โa..=b
์ ๋์์ ๋ํ ์ถ๊ฐ ํ
์คํธ; nth()
, min()
, max()
๋ฐ last()
์ ๋ฌธํ๊ฐ ์ฌ๋ฐ๋ฅด๊ฒ ์๋ํ๋์ง, ๊ทธ๋ฆฌ๊ณ (5..=5).next()
ํธ์ถํ ํ ๋ฒ์๊ฐ 1..=0
.liballoc/tests/str.rs
, liballoc/tests/btree/map.rs
๋ฐ liballoc/tests/vec.rs
โa..=b
๊ฐ ๋ค์ํ ์ปฌ๋ ์
์ ํ์์ ์ฌ๋ฐ๋ฅด๊ฒ ์๋ํ๋์ง ํ์ธํฉ๋๋ค.parse-fail/range_inclusive.rs
๋ฐ ui/impossible_range.rs
โa..=
๋ฐ ..=
์ ๊ฐ์ ๋์ผ์ค ๊ตฌ๋ฌธ์ ์์ผ๋ก ์ปดํ์ผํ ์ ์๋๋ก ํฉ๋๋ค.parse-fail/range_inclusive_dotdotdot.rs
โa...b
๋ฐ ...b
์ ๊ฑฐ๋ถํฉ๋๋ค.run-pass/inc-range-pat.rs
โa..=b
๋ฐ a...b
์ด ๋ชจ๋ ํ์ฉ๋๊ณ ๋๋ฑํจ์ ๋ณด์ฅํฉ๋๋ค.compile-fail/range_traits-1.rs
๋ฐ compile-fail/range_traits-6.rs
โRangeInclusive
๋ฐ RangeInclusiveTo
๋ ๋ค๋ฅธ ๋ฒ์์ ๋ง์ฐฌ๊ฐ์ง๋ก PartialOrd
๊ตฌํํ์ง ์์ผ๋ฉฐ RangeInclusive
๋ Copy
๊ตฌํํ์ง ์์ต๋๋ค. ๋ฐ๋ณต์์ด๊ธฐ ๋๋ฌธ์ Copy๋ฅผ ๊ตฌํํ์ญ์์ค).libcore/tests/ops.rs
โRangeInclusive
์ธ์คํด์ค์ ๋ฐ๋ณต์ด ์๋ํ๋์ง ํ์ธํฉ๋๋ค.for-loop์์ a..=b
๋ฅผ ์ฌ์ฉํ๋ฉด next()
๊ฐ ๋ ๋ณต์กํ๊ณ ์ต์ ํ ํ๋ก๊ทธ๋จ์ ๋ ์น์ํ๊ธฐ ๋๋ฌธ์ a..(b+1)
๋ณด๋ค ์ฑ๋ฅ์ด ํจ์ฌ ๋ฎ์ต๋๋ค. ์ด๊ฒ์ ํ์ฌ #45222์์ ์ถ์ ๋๊ณ ์์ต๋๋ค. ์ด๊ฒ์ ํ์ฌ for-loop ๋์ iterator ๋ฉ์๋๋ฅผ ์ฌ์ฉํ ๋ #48012์ ์ํด ์ํ๋ฉ๋๋ค.
์์ง Rust-lang/rfcs#1980์ ๋์์ธ์ ์ปค๋ฐํ๊ณ ์ถ์ง ์๋ค๋ฉด RangeInclusive
ํ๋๋ฅผ ๋ถ์์ ํ๊ฒ ์ ์งํด์ผ ํ ์๋ ์์ต๋๋ค .
์์ง Rust-lang/rfcs#1980์ ๋์์ธ์ ์ปค๋ฐํ๊ณ ์ถ์ง ์๋ค๋ฉด RangeInclusive ํ๋๋ฅผ ๋ถ์์ ํ๊ฒ ์ ์งํด์ผ ํ ์๋ ์์ต๋๋ค.
+1
์ผ๋ถ ๋ฉ์๋ ๊ธฐ๋ฐ ์ธํฐํ์ด์ค๋ฅผ ํตํ์ง ์๊ณ ์ง์ ๋ฒ์ ํ๋๋ฅผ ๋
ธ์ถํ ํ์๊ฐ ์์ต๋๊น?
@rfcbot fcp ๋ณํฉ
@kennytm ์ ์์ฝ ์ ๋ฐ๋ฅด๋ฉด ํฌํจ ๋ฒ์ ๊ตฌ๋ฌธ( ..=
)์ ์์ ํ ํ ๊ฒ์ ์ ์ํฉ๋๋ค.
(์ฆ, ..=
์ ๋ฎ์ ์ฑ๋ฅ์ ์ฝ๊ฐ ์ฐ๋ ค์ค๋ฝ์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ..=
๋น๋ถ๊ฐ Iterator
์ ์ง์ ๊ตฌํํ์ง ์๋ ๊ฒ์ด ํ๋นํ์ง ๊ถ๊ธํฉ๋๋ค. ์ด๋ฅผ ์ํํ๊ธฐ ์ํด.)
ํ์ @nikomatsakis ๊ฐ ์ด๋ฅผ ๋ณํฉํ ๊ฒ์ ์ ์ํ์ต๋๋ค. ๋ค์ ๋จ๊ณ๋ ํ๊ทธ๊ฐ ์ง์ ๋ ๋๋จธ์ง ํ์ด ๊ฒํ ํ๋ ๊ฒ์ ๋๋ค.
ํ์ฌ ๋์ด๋ ์ฐ๋ ค ์ฌํญ์ด ์์ต๋๋ค.
๊ณผ๋ฐ์์ ๊ฒํ ์๊ฐ ์น์ธํ๊ณ ๋ฐ๋ํ์ง ์์ผ๋ฉด ์ต์ข ์๊ฒฌ ์ ์ถ ๊ธฐ๊ฐ์ด ์์๋ฉ๋๋ค. ์ด ํ๋ก์ธ์ค์ ์ด๋ ์์ ์์๋ ์ ๊ธฐ๋์ง ์์ ์ฃผ์ ๋ฌธ์ ๋ฅผ ๋ฐ๊ฒฌํ๋ฉด ์๋ ค์ฃผ์ธ์!
ํ๊ทธ๊ฐ ์ง์ ๋ ํ ๊ตฌ์ฑ์์ด ๋์๊ฒ ์ค ์ ์๋ ๋ช ๋ น์ ๋ํ ์ ๋ณด๋ ์ด ๋ฌธ์ ๋ฅผ ์ฐธ์กฐํ์ญ์์ค.
์ด๋ฅผ ์ํํ๊ธฐ ์ํด ๋น๋ถ๊ฐ Iterator๋ฅผ ..= ์ง์ ๊ตฌํํ์ง ์๋ ๊ฒ์ด ํ๋นํ์ง ๊ถ๊ธํฉ๋๋ค.
์ด๋ฌํ ์์ ์ ์ธ ํน์ฑ์ ํ์ฌ Nightly์์ T
๋ํด RangeInclusive<T>
๋ํด ๊ตฌํ๋ฉ๋๋ค. Iterator
, FusedIterator
, ExactSizeIterator
, Debug
, Clone
, Eq
, PartialEq
, Hash
, TrustedLen
.
@SimonSapin ๋๋ ์ด๋ฏธ ๊ตฌ์กฐ์ฒด๋ฅผ ์์ ํ ํ์ต๋๊น? (์ฆ, ๊ด์ฐฐ ๊ฐ๋ฅํฉ๋๊น?) ๊ทธ๋ ์ง ์๋ค๊ณ ๊ฐ์ ํ์ต๋๋ค.
๋งํ๋ค, ๋ ๋ํ ์ ๋ง, ์ ๋ง ์๊ฐ 1..2
๋ฐ 1..=2
์ฌ๊ธฐ ๋ณ๊ฒฝํ๊ธฐ์ ๋ํด ์ฃผ์ฅํ๊ณ , ๋์ ์ ์ฐ๋ฆฌ๊ฐ ์ํ๋ฅผ ์ถ๊ตฌํ๊ณ ๊ฐ์ ๋งํ๋ค ์ ์ ๋ชจ๋ ๊ฐ์ ์ฅ์์์ ์ฌ์ฉํ ์ ์์ด์ผ ์ต์ ํ.
end == MAX
ํน์ ์ผ์ด์ค ๋ฒ์๊ฐ ์๋ ์ด์ ๋ ๋ฌด์์
๋๊น? ์ด๋ ๊ฒฝ๊ณ๋ก ์ง์ ์ด๋ํ๋ ๋ฒ์์ ๋ ๋ง์ ์ฝ๋๊ฐ ์๋ค๋ ์ ์ ์ ์ธํ๊ณ ๋ฐฐํ์ ๋ฒ์์ ๋์ผํ ์ฝ๋๋ฅผ ๊ฐ๋ ๊ฐ์ฅ ํฌ๊ด์ ์ธ ๋ฒ์๋ก ์ด์ด์ง ์ ์์ต๋๋ค. end != Max
๋ถ๊ธฐ๋ end
์์ ํ์ง ์์ผ๋ฏ๋ก ์ตํฐ๋ง์ด์ ์์ ์ฝ๊ฒ ์ธ๋ผ์ธํ ์ ์์ต๋๋ค.
@nikomatsakis ์๋์, ๊ตฌ์กฐ์ฒด๋ ํ์ฌ ๋ถ์์ ํฉ๋๋ค. ๊ทธ๋ฌ๋ @kennytm์ ์ ์์๋ ์์ ํ๊ฐ ํฌํจ๋ฉ๋๋ค.
@SimonSapin
์๋์, ๊ตฌ์กฐ์ฒด๋ ํ์ฌ ๋ถ์์ ํฉ๋๋ค. ๊ทธ๋ฌ๋ @kennytm์ ์ ์์๋ ์์ ํ๊ฐ ํฌํจ๋ฉ๋๋ค.
์ ๊ฒ ์ด์; ์ค์ ๋ก ์ด๊ฒ์ด ๋ฐ๋ก ์ง๊ธ ์๋๋ฉด ์ ๋ Iterator
impl์ ์ ๊ฑฐํด์ผ ํ๋ค๊ณ ์ธ๊ธํ ์ด์ ์
๋๋ค. =)
@SimonSapin ๊ตฌ์กฐ์ฒด๋ฅผ ์์ ํํ์ง ์๊ณ ๋ a..=b
ํํ์ ๊ตฌ๋ฌธ์ ์์ ํํ ์ ์๋ค๊ณ ์๊ฐํฉ๋๋ค. ๊ทธ๋ฌ๋ ์ฐ๋ฆฌ๋ ํ๋๋ฅผ ๋ถ์์ ํ๊ฒ ๋ ์ ์์ต๋๋ค. ๋ง์ฝ ์ฐ๋ฆฌ๊ฐ ๊ทธ๊ฒ์ ๋ฐ๊ฟ ์ ์๋ค๊ณ ์๊ฐํ๋ค๋ฉด.
๋ง์ต๋๋ค. ์ด๋ฌํ ์ ํ์ ๊ฐ์ ๊ตฌ์ฑํ๊ธฐ ์ํ ๊ตฌ๋ฌธ์ ์์ ํํ ๋ ์ ํ์ ์์ ํํด์๋ ์ ๋๋ค๊ณ ๋งํ๋ ๊ฒ์ ์๋๋๋ค.
๋ฒ์ ๊ตฌ๋ฌธ์ ํ์ถํ๊ณ ์์ ํ๋ฅผ์ํ Huzzah! :๋ฐ๋ค:
ํ์๋จธ์ ์ด ์ฃผ์ด์ง๋ฉด Range ์ ํ์ด :Iterator
๊ฐ ์๋๊ณ :IntoIterator
๋ผ๊ณ ์ฃผ์ฅํฉ๋๋ค. ํ์ง๋ง ์ง๊ธ ์ Range์์ ์ผ๊ด์ฑ ์ด ์ต์ ์ ์ ํ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. ์ด ๊ฒฝ์ฐ๋ฅผ Chain
์ ํจ๊ป "์, ๋ด๋ถ ๋ฐ๋ณต์ด ๋๋๋ก
ํด๊ฒฐ๋์ง ์์ ๋ ๋ค๋ฅธ ๋ฌธ์ ๋ ๋ฐ๋ณต๊ณผ ๊ด๋ จ์ด ์์ต๋๋ค. ๋ฐ๋ณต์ด ์๋ฃ๋๋ฉด RangeInclusive์ ํน์ ํํ์ ์ปค๋ฐํ๊ณ ์ถ์ต๋๊น? ์ง๊ธ ์ 1..=0
๋ก ๋๋ฌ์ง๋ง ๋ค๋ฅธ ์ต์
์ ๋ํด ๋
ผ์ํ์ต๋๋ค . ๋ฌธ์๊ฐ ์ฌ๋๋ค์ด ๋ฌธ์์ ์์กดํ์ง ์๋๋ก ํ๋ ๋ฐ ์ถฉ๋ถํ์ง ์ฌ๋ถ๋ ์ ์ ์์ง๋ง ํ์ฌ ๋ฌธ์๋ ์ฌํ ๋ฐ๋ณต ๋ฒ์๋ฅผ ์๋นํ ์ธ๋ชจ์๊ฒ ๋ง๋ค๊ณ ์ ์ด๋ ๋๋ดํฉ๋๋ค.
์ด ๊ฒฝ์ฐ๋ฅผ Chain๊ณผ ํจ๊ป "์, ๋ด๋ถ ๋ฐ๋ณต์ด ๋๋๋ก ๋ ๋น ๋ฅธ ๊ฒ์ผ๋ก ๋ฐํ์ก์ต๋๋ค" ๋ฒํท์ ๋ฃ์ ์ ์์ต๋๋ค.
๋ ์ ๋ฒ์๋ณด๋ค ์ฑ๋ฅ์ด ๋จ์ด์ง์ง ์๋๋ก ์์ ํด์ผ ํ๋ค๊ณ ์๊ฐํฉ๋๋ค. ๊ทธ๋ด ๊ทผ๋ณธ์ ์ธ ์ด์ ๋ ์์ต๋๋ค.
๊ทธ๋ด _๊ทผ๋ณธ์ ์ธ_ ์ด์ ๋ ์์ต๋๋ค.
๊ทธ๊ฒ์ ์ฐ๋ฆฌ๊ฐ ์ํํ ์ ์๋ ๋ถ๋ณ์ฑ์ ๋ฌ๋ ค ์์ต๋๋ค. ์ํ์ ์ถ๊ฐ ๋นํธ๊ฐ ์๋ ์ด์ ๋ ๊ณต์์์๋ ๋ฐ๋ณต์ ์๋ฃํ ๋ ํด๋น ๋นํธ๊ฐ ์ค์ ๋ก ์ค์ ๋๋๋ก ๊ฐ์ ํ๋ ๊ฒ์ด ์์์ต๋๋ค(์ฌ์ค 100..=0
์ ๊ฐ์ ๋ฆฌํฐ๋ด์ ์ค์ ๋์ง _์์ต๋๋ค_). ์ข
๋ฃ ์กฐ๊ฑด์ ๋ณตํฉ์ ์ด์ด์ผ ํฉ๋๋ค. ์ฆ, LLVM์ด ๋ ์ด์ ์ด๋ฅผ ํด์ ํ ์์ฌ๊ฐ ์์ผ๋ฏ๋ก ์ฑ๋ฅ์ด ์ ํ๋ฉ๋๋ค. ์์ ํ ์์ ํ๋ ๊ฒ์ ๊ตฌ์กฐ์ฒด๋ฅผ ๋ ํฌ๊ฒ ๋ง๋ค๊ณ pub ํ๋๊ฐ ์๋๋ก ํ๊ฑฐ๋ RangeInclusive: !Iterator
๋ฅผ ๋ง๋ค๊ฑฐ๋ ์ด๋ฌํ ์ข
๋ฅ์ ๋ฃจํ๋ฅผ ์ต์ ํํ๋ ๋ฐ LLVM์ ๋ ์ ๋ง๋๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค.
๊ทธ๊ฒ ๋ด๊ฐ ์ฐ๋ ๋ช ๊ฐ์ง ๋ค๋ฅธ ๋ฐฉ๋ฒ์ผ๋ก ์๋ํ๋ค RangeInclusive::next
, ๊ทธ๋ฆฌ๊ณ ๊ฒ ๊ฐ์ต๋๋ค ๋ด ๊ณผ๊ฑฐ ์๊ธฐ์ ์ ํ์ด์ ์ผ์นํ๋๋ก Option<Ordering>
๋งค์ฐ ์ฌํํ๊ณ ์๋ค LLVM - ๋จ์ง ๋์ ์ด ๋น๊ต ์ฐ์ฐ์๋ฅผ ๋ฃ์ด์ฃผ๊ณ ์๋ค ํจ์ฌ ๋ ๋์ ์กฐ๋ฆฝ. PR ์์ : https://github.com/rust-lang/rust/pull/48057
ํ์๋จธ์ ์ด ์ฃผ์ด์ง๋ฉด Range ์ ํ ์ค ์ด๋ ๊ฒ๋ :Iterator๊ฐ ์๋๊ณ :IntoIterator์ผ ๋ฟ์ด๋ผ๊ณ ์ฃผ์ฅํฉ๋๋ค. ํ์ง๋ง ์ง๊ธ์ Range์์ ์ผ๊ด์ฑ์ด ์ต์ ์ ์ ํ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. ์ด ๊ฒฝ์ฐ๋ฅผ Chain๊ณผ ํจ๊ป "์, ๋ด๋ถ ๋ฐ๋ณต์ด ๋๋๋ก ๋ ๋น ๋ฅธ ๊ฒ์ผ๋ก ๋ฐํ์ก์ต๋๋ค" ๋ฒํท์ ๋ฃ์ ์ ์์ต๋๋ค.
๋๋ ๊ธฐ๋ณธ์ ์ผ๋ก ์ด๊ฒ์ ๋์ํฉ๋๋ค.
:bell: ์ ์ ์ด์ ์ต์ข ๋๊ธ ๊ธฐ๊ฐ์ ์ ์ด๋ค์์ต๋๋ค . :๋ฒจ:
:bell: ์ ์ ์ด์ ์ต์ข ๋๊ธ ๊ธฐ๊ฐ์ ์ ์ด๋ค์์ต๋๋ค . :๋ฒจ:
@rfcbot fcp ์ทจ์
@withoutboats ๋ฐ @KodrAus ๋ ํด๋น ์์๋ฅผ ์ ํํ์ง ์์์ต๋๋ค.
@cramertj ์ ์์ด ์ทจ์๋์์ต๋๋ค.
@rfcbot fcp ๋ณํฉ
https://internals.rust-lang.org/t/psa-tweaks-to-fcp-process/6775
ํ์ @cramertj ๊ฐ ์ด๋ฅผ ๋ณํฉํ ๊ฒ์ ์ ์ํ์ต๋๋ค. ๋ค์ ๋จ๊ณ๋ ํ๊ทธ๊ฐ ์ง์ ๋ ๋๋จธ์ง ํ์ด ๊ฒํ ํ๋ ๊ฒ์ ๋๋ค.
ํ์ฌ ๋์ด๋ ์ฐ๋ ค ์ฌํญ์ด ์์ต๋๋ค.
๊ณผ๋ฐ์์ ๊ฒํ ์๊ฐ ์น์ธํ๊ณ ๋ฐ๋ํ์ง ์์ผ๋ฉด ์ต์ข ์๊ฒฌ ์ ์ถ ๊ธฐ๊ฐ์ด ์์๋ฉ๋๋ค. ์ด ํ๋ก์ธ์ค์ ์ด๋ ์์ ์์๋ ์ ๊ธฐ๋์ง ์์ ์ฃผ์ ๋ฌธ์ ๋ฅผ ๋ฐ๊ฒฌํ๋ฉด ์๋ ค์ฃผ์ธ์!
ํ๊ทธ๊ฐ ์ง์ ๋ ํ ๊ตฌ์ฑ์์ด ๋์๊ฒ ์ค ์ ์๋ ๋ช ๋ น์ ๋ํ ์ ๋ณด๋ ์ด ๋ฌธ์ ๋ฅผ ์ฐธ์กฐํ์ญ์์ค.
:bell: ์ ์ ์ด์ ์ต์ข ๋๊ธ ๊ธฐ๊ฐ์ ์ ์ด๋ค์์ต๋๋ค . :๋ฒจ:
@rfcbot fcp ๊ด์ฌ์ฌ ๋ฒ์ ํจํด์๋ ์ด์์ ์ฐ์ ์์ ๋ฌธ์ ๊ฐ ์์ต๋๋ค( https://github.com/rust-lang/rust/issues/48501).
( @petrochenkov ๊ตฌ๋ฌธ์ <strong i="6">@rfcbot</strong> concern KEYWORD
๊ฐ ์๋ fcp
์
๋๋ค. ๊ทธ๋ฌ๋ ํ๊ทธ๊ฐ ์ง์ ๋ ํ์๋ง์ด ์ฐ๋ ค ์ฌํญ์ ๋ฑ๋กํ ์ ์๋ค๊ณ ์๊ฐํฉ๋๋ค.)
์ด์ ์ต์ข ์๊ฒฌ ์๋ ด ๊ธฐ๊ฐ์ด ์๋ฃ๋์์ต๋๋ค.
#48501์ด ์์ ํ๋ฅผ ์ฐจ๋จํ๊ธฐ์ ์ถฉ๋ถํ๋ค๋ฉด #48500์ด ๋ณํฉ(๋ฐ ์์ ํ)๋ ๋๊น์ง ๊ธฐ๋ค๋ ค์ผ ํฉ๋๊น? ๋ ๋น ๋ฅธ ๊ธธ์ ์ฐพ์ ์ ์๊ธฐ๋ฅผ ๋ฐ๋๋๋ค. ์ด ๊ธฐ๋ฅ์ ์ถ์๋ ์ง ๋๋ฌด ์ค๋๋์ด ํ์ฌ ์ค๋ฅ ๋ฉ์์ง๊ฐ ์ฌ๋๋ค์๊ฒ ๋ถ์์ ํ ๊ตฌ๋ฌธ์ ๊ฐ๋ฆฌํค๋ ๋ถ์์ ํ ์ํ์ ์์ต๋๋ค.
@durka
์ด ์์ ํ๋ฅผ ์ํด https://github.com/rust-lang/rust/pull/48500 ์์ ํ๋ฅผ ๊ธฐ๋ค๋ฆด ํ์๊ฐ ์๋ค๊ณ ์๊ฐํฉ๋๋ค
...
ํจํด์ด ์ฌ์ ํ ์กด์ฌํ๊ณ ์ฌ์ ํ ์ด์ ์ฐ์ ์์๋ฅผ ์ ์งํ๋ฏ๋ก ํจํด์ &BEGIN ... END
์๋ ๊ฒฝ์ฐ(์ด๊ฒ์ ๋งค์ฐ ๋๋ฌธ ๊ฒฝ์ฐ์) ํญ์ ..=
๋ณ๊ฒฝํ์ง ์๋ ์ต์
์ด ์์ต๋๋ค. ํ๋์
#48500์ ๊ฝค ๋นจ๋ฆฌ ์์ ํ์ํฌ ์ ์๋ค๊ณ ์๊ฐํฉ๋๋ค.
๊ฐ์ธ์ ์ผ๋ก ๋๋ "insta-stable"๋ก ๋๋ฉํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
inclusive range
๋ #47813 pull ์์ฒญ์ด ๋ณํฉ๋์ด ์์ ํ๋์์ง๋ง 1.25 ๋ฆด๋ฆฌ์ค์๋ ์์ต๋๋ค. ์ด์ ๋ ๋ฌด์์
๋๊น? ํ ๋ฆฌํ์คํธ๊ฐ 3์ 16์ผ ์ ๋ณํฉ๋์์ง๋ง
@mominul ๊ธฐ๋ฅ์ ๋ง์คํฐ ๋ธ๋์น์ ๋ณํฉ๋ ํ์๋ง ์ฌ์ฉํ ์ ์์ผ๋ฏ๋ก ..=
๋ 1.25๊ฐ ์๋ 1.26๋ถํฐ ์ฌ์ฉํ ์ ์์ต๋๋ค.
๊ทธ๋ฐ ์์ผ๋ก ๋ฒ ํ์์ ํ ์คํธํ๊ณ ์์ ์ ์ธ ์ํ๋ก ํธ์๋๊ธฐ ์ ์ ์ผ๊ฐ์ ํ ์คํธํ ์ ์์ต๋๋ค.
@kennytm ๋ฐ @clarcharr ์ ๋ ฅ์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค! Rust 1.26 ๋ฆด๋ฆฌ์ค๋ ํ์คํ ์ ์ด๋ ์ ์๊ฒ๋ ์ง๋ฃจํ์ง ์์ต๋๋ค! :์๋ค:
์ด ํ ๋ก ์ ์ฐธ์ฌํ๊ธฐ์๋ ๋๋ฌด ๋ฆ์๋ค๋ ๊ฒ์ ์๊ณ ์์ง๋ง ..
๊ตฌ๋ฌธ์ ์์ ํ ์๋ตํ๊ณ ๋์ ๋จ์ด๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ ์ด๋ป์ต๋๊น?
Scala์๋ 1 to 4
๋ฅผ ์์ฑํ๋ [1, 2, 3, 4]
, 1 until 4
๋ฅผ ์์ฑํ๋ [1, 2, 3]
๋ฐ ๋จ๊ณ ํฌ๊ธฐ๋ฅผ ๋ํ๋ด๋ ์ ํ์ by
ํค์๋๊ฐ ์์ต๋๋ค. : 1 to 10 by 2 = [1, 3, 5, 7, 9]
.
์ด๋ ๊ฒ ํ๋ฉด ์๋๊ฐ ๋ ๋ช ํํด์ง๊ณ ๋ชจ๋ ์ฌ๋์ด ๊ฑฑ์ ํ๋ ๊ฒ์ฒ๋ผ ๋ณด์ด๋ "์คํ-๋ฐ์ด-์" ์ค๋ฅ๋ฅผ ํผํ ์ ์์ต๋๋ค.
๋ฌผ๋ก ์๋ ๊ตฌ๋ฌธ์ด ๊ณ์ ์ง์๋์ง ์๋ ๊ฒฝ์ฐ ๊ธฐ์กด ์ฝ๋๊ฐ ๋ชจ๋ ์ค๋จ๋ฉ๋๋ค.
Rust ๋ฒ์์ to
๋ฐ until
๋ฅผ ํค์๋๋ก ๋์
ํด์ผ ํ๋ฉฐ ์ด๋ ํจ์ฌ ๋ ํฐ ๋ณํ๊ฐ ๋ ๊ฒ์
๋๋ค.
Scala์์ ์ ์๋ํ์ง๋ง Rust์ ๋์์ธ ์ ํ์ ํฌ๊ฒ ๋ค๋ฆ ๋๋ค.
@ElectricCoffee ๊ทธ ๋๋์
๋ด์ฅ ์ธ์ด ํค์๋๋ ํจ์ ๋๋ ๋ณ์ ์ด๋ฆ๊ณผ ์ถฉ๋ํ ์ ์์ผ๋ฏ๋ก ์ต์ํ์ผ๋ก ์ ์งํด์ผ ํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
to
์ until
๋ std
์์ ์ฌ์ฉ๋๋ ๋จ์ด๋ ์๋์ง๋ง (๋ด๊ฐ ์๋ ํ) ๋ค๋ฅธ ์์์ ํ๋ก์ ํธ.
@daboross ๊ทธ๊ฑด ์ฌ์ค ๊ณ ๋ คํ์ง ์์ ๊ณต์ ํ ์ง์ ์ด์ง๋ง a .. b
๋ a
๋ฐ b
๊ด๊ณ์์ด ์ด๋ค ์๋ฏธ์์ a to b
์๋ฏธํฉ๋๋ค. b
์ค์ ๋ก ์์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ ์, @timvisee ๋ ์๋ง๋
@ElectricCoffee ํ์ง๋ง to
๊ฐ ..=
ํ๊ณ until
๊ฐ ..
๋ฅผ ์๋ฏธํ๋ค๋ฉด a to b
์๋๋ผ a until b
๋ฅผ ์จ์ผ ํฉ๋๋ค a to b
a .. b
a to b
๋์ a .. b
. ๋ณด์๋ค์ํผ, ์ฐ์ฐ์๋ณด๋ค ์ด๋ฌํ ๋จ์ด๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด "๋" ์ง๊ด์ ์ด์ง ์์ต๋๋ค. ๊ทธ๋ฌ๋ ..
๊ฐ ์ฌ์ฉ๋๋ ๋ชจ๋ ๊ณณ์์ until
๋ฅผ ์ฐ๋ ๊ฒ์ด ๋ ์ฅํฉํ ๊ฒ์
๋๋ค. ..=
(๋จ์ด๊ฐ ์ฌ์ฉ๋ ๊ฒฝ์ฐ ..
์ ๋ ์งง์ ๋จ์ด๋ฅผ ํ ๋นํด์ผ ํจ)
๊ทธ๋ฆฌ๊ณ ๋น์ ์ @Boscop ์ ๋ํด ์ ๋์ ์ผ๋ก ์ณ์ต๋๋ค. ๊ทธ๋ฌ๋ ๊ทธ๊ฒ์ ๋จ์ด๊ฐ ์ด๋ป๊ฒ ์ํ๋ ์ ์๋์ง์ ๋ํ ์์ผ ๋ฟ์ ๋๋ค.
์ผ๋ถ ์ธ์ด์์๋ to
๋
์ ๋ฐ upto
ํฌํจ๋ ๋ณธ ๊ฒ ๊ฐ์ต๋๋ค.
๊ทธ๊ฒ์ ๋ชจ๋ ์์ด๋์ด๋ก ์๋ฏธํ์ต๋๋ค.
์ค์นผ๋ผ์์๋ ๋ฐฐํ์ ๋ฒ์๋ณด๋ค ํฌ๊ด์ ๋ฒ์๊ฐ ๋ ๋ง์ด ์ฌ์ฉ๋๋ฏ๋ก ๋ ์งง์ ๋จ์ด๊ฐ ์ฃผ์ด์ง๋๋ค.
@timvisee One์ ๋จ์ํ a.to(b)
๋ฐ a.until(b)
๋ฅผ ์ฌ์ฉํ ์ ์์ผ๋ฉฐ ์ถ๊ฐ ํค์๋๊ฐ ํ์ํ์ง ์์ต๋๋ค(๊ตฌ๋ฌธ์ ํจ์ฌ ๋ ์ด์ํ๊ฒ ๋ง๋ค์ง ์์ต๋๋ค).
@hyst329 ๊ทธ๊ฑด ์๊ฐ๋ ๋ชป
์ด๊ฒ์ด ํ์ฌ(/new) ๊ตฌ๋ฌธ์ ๋ํ ์ ์ ํ ์์ ํ ๋์ฒด๊ฐ ๋ ๊ฒ์ด๋ผ๊ณ ๋ ๋ฏฟ์ง ์์ต๋๋ค. ๊ทธ๋ฌ๋ ๊ทธ๊ฒ์ ์ข์ ์ถ๊ฐ ์ฌํญ์ด ๋ ๊ฒ์ ๋๋ค.
์ง๊ด์ฑ์ ๋ํ Boscop์ ์๊ฒฌ์ ๋์ํด์ผ ํฉ๋๋ค. "ํฌํจํ๋" ๋ฐ "์ ์ธํ"๊ณผ ๊ฐ์ ๋จ์ด๋ฅผ ์ ์ธํ๊ณ , ์ผ์์ ์ธ ์์ด๋ ๊ธฐ์ฑํ ์ง๋ฆ๊ธธ์ด ์์ ๋งํผ ์ถฉ๋ถํ ํฌ๊ด์ ์ธ ๋ฒ์์ ๋ฐฐํ์ ์ธ ๋ฒ์๋ฅผ ์ค์ ๋ก ๊ตฌ๋ถํ์ง ์์ต๋๋ค.
"A to B"๋ ์ฌ์ฉ๋๋ ๋งฅ๋ฝ์์ ์ฌ์ฉ๋์ง ์๋ ํ, "A to B"๊ฐ ์ฌ๊ธฐ ์บ๋๋ค ์จํ๋ฆฌ์ค์ฃผ ๋จ๋ถ์์ ์ผ์์ ์ธ ์ฐ์ค์์ ํฌ๊ด์ ์ธ ๋ฒ์๋ฅผ ์๋ฏธํ๋์ง ๋ฐฐํ์ ์ธ ๋ฒ์๋ฅผ ์๋ฏธํ๋์ง ๋ชจํธํ๋ฉฐ "until"์ด ์ฐ๊ด๋์ด ์์ต๋๋ค. ์๊ฐ์ด ๋๋ฌด ๊ฐ๋ ฅํ์ฌ ์ด ๋์จํ ์๋ฏธ๋ก ์ฌ์ฉ๋ ๋ "until"์ด ์ฐ๊ด๋๋ "event"๊ฐ "X๋ฅผ ๋ณผ ๋๊น์ง"์ธ์ง "X๋ฅผ ์ฒ๋ฆฌ ํ ๋๊น์ง"์ธ์ง ์ฌ๋ถ๊ฐ ๋ถ๋ถ๋ช ํฉ๋๋ค.
@hyst329 ๋ฉ์๋๋ก ์ฌ์ฉํ๋ฉด ๋ฒ์๊ฐ ์ซ์ ์ ํ์ผ๋ก ์ ํ๋ฉ๋๋ค. ์ซ์ ๋ฒ์์ ๋ํ ๊ตฌ๋ฌธ๊ณผ ๋ค๋ฅธ ๋ฒ์์ ๋ํ ๊ตฌ๋ฌธ์ ์ฌ์ฉํ์ง ์๋ ๊ฒ์ด ์ข์ต๋๋ค.
๋ฒ์ ์์ฑ์ ์ํ ์๊ณก์ ์๋ก์ด ํฌ๊ด์ ์ธ ํน์ฑ์ ์ถ๊ฐํ ์ ์๋ค๊ณ ์๊ฐํฉ๋๋ค. ํ์ง๋ง ์ด๋ ์ค์ to
๋ฐ until
๋ฉ์๋๊ฐ ์๋ ํญ๋ชฉ์ ๋ํ ์ฃผ์ ๋ณ๊ฒฝ ์ฌํญ์ ๊ฐ๊น์ต๋๋ค.
๊ณ ๋ฐฑํ์๋ฉด ํค์๋ ์ ์์ด ๋ง์ฐ์ ์ฅ๋์ธ ์ค ์์๋ค.
..= ๊ตฌ๋ฌธ์ด ์์ ํ๋์์ต๋๋ค.
2018๋ 4์ 5์ผ ๋ชฉ์์ผ ์คํ 1์ 53๋ถ์ David Ross [email protected]์์ ๋ค์๊ณผ ๊ฐ์ด ์ผ์ต๋๋ค.
@hyst329 https://github.com/hyst329 ๋ฉ์๋๋ก ์ฌ์ฉํ๋ฉด ์ ํ๋ฉ๋๋ค.
๊ทธ๋ฌ๋ ๋ฒ์๋ ์ซ์ ์ ํ์ ๋๋ค. ํ๋์ ๊ตฌ๋ฌธ์ ์ฌ์ฉํ์ง ์๋ ๊ฒ์ด ์ข์ต๋๋ค.
์ซ์์ ๋ฒ์์ ๋ค๋ฅธ ๊ฒ์ ๋ฒ์์ ๋ํ ๋ ๋ค๋ฅธ ๊ฒ์ ๋๋ค.๋๋ ์ฐ๋ฆฌ๊ฐ ๋ค์์ ๋ง๋ค๊ธฐ ์ํ ์๊ณก์ ์๋ก์ด ํฌ๊ด์ ์ธ ํน์ฑ์ ์ถ๊ฐํ ์ ์๋ค๊ณ ์๊ฐํฉ๋๋ค.
๋ฒ์, ํ์ง๋ง ๊ทธ๊ฒ์ ์ฌ์ ํ
์ค์ to ๋ฐ until ๋ฉ์๋.โ
๋น์ ์ด ์ธ๊ธ๋์๊ธฐ ๋๋ฌธ์ ์ด๊ฒ์ ๋ฐ๋ ๊ฒ์ ๋๋ค.
์ด ์ด๋ฉ์ผ์ ์ง์ ๋ต์ฅํ๊ณ GitHub์์ ํ์ธํ์ธ์.
https://github.com/rust-lang/rust/issues/28237#issuecomment-379021814 ,
๋๋ ์ค๋ ๋ ์์๊ฑฐ
https://github.com/notifications/unsubscribe-auth/AAC3nwBj-b985q1Ez0OHDEHkG6DWV_5nks5tlloZgaJpZM4F4LbW
.
์, ์ฐ๋ฆฌ๋ ์ด ๋ฌธ์ ์ ๋ํด 300๊ฐ ์ด์์ ๋๊ธ์ ๋ฌ์๊ณ ์ฒซ ๋ฒ์งธ ๋๊ธ ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
์ด ์ค๋ ๋์์ ๋ ์ด์ ๊ตฌ๋ฌธ ํ ๋ก ์ด ์์ด์ผ ํฉ๋๋ค . ๋ฐฐํ์ ๋ฒ์ ๊ตฌ๋ฌธ์ ๋ํ ๋ค๋ฅธ ์ ์์ ์ฌ์ฉ์ ํฌ๋ผ ๋๋ ๋ด๋ถ ํฌ๋ผ์์ ๊ธฐ์กด์ ๋ชจ๋ ์๊ฒฌ๊ณผ ํด๋น ๊ทผ๊ฑฐ๋ฅผ ์ฝ์ ํ ์ด๋ฃจ์ด์ ธ์ผ ํฉ๋๋ค. ํนํ, ํ์ ํธํ์ฑ์ ๊นจ๋ ๊ฒ์ ์์์ด ์๋๋๋ค.
์ง๊ธ์ ์ด ๋ฌธ์ ๋ฅผ ์ ๊ทธ๊ฒ ์ต๋๋ค. ํน์๋ผ๋ ๋ฐ์ ๋ฐ๊ณ ์๋ค๋ฉด ์ฃ์กํฉ๋๋ค!
์ด ๋ฌธ์ ์์ ๋ค๋ฃจ๋ ๋ชจ๋ ๊ฒ์ด ์๋ฃ๋์๋ค๊ณ ๋ฏฟ์ต๋๋ค. ๋ค๋ฅธ ๋ฌธ์ ๊ฐ ์๋ ๊ฒฝ์ฐ ๋ฌธ์ ์ ์๋ ๋ฉ์์ง์ ์๋ ์ฒดํฌ๋ฆฌ์คํธ๋ฅผ ๋ค์ ์ด๊ณ ์ ๋ฐ์ดํธํ์ญ์์ค.
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
lang ํ์ ์ค๋ ํ์์์ ์ด ๊ธฐ๋ฅ์ ๋ํด ๋ค์ ๋ ผ์ํ๊ณ ๋๋ต ๋ค์๊ณผ ๊ฐ์ ๋งคํธ๋ฆญ์ค์ ๋๋ฌํ์ต๋๋ค.
ํจํด์์
...
๋ฅผ ์ง์ํ๊ณ ํํ์์์..
ํ๋ ๊ฒ์ ์ง์งํ ์ ์๋ ๋์์ธ์ ๋๋ค. ๊ทธ๊ฒ์ ์ฌ์ฉ์๊ฐ ๊ตฌ๋ฌธ์ด ์๋ํ์ง ์์ ๊ฒ์ด๋ผ๊ณ ๊ธฐ๋ํ๊ฒ ๋ง๋ญ๋๋ค....
๋ฐ..
๋ฅผ ๋ ์์น์ ๋ชจ๋ ํ์ฉํ๋ฉด ๋์์ด ๋์ง๋ง ๊ฐ๋ณ ๋ฌธ์ ๋ ์ค์ ๋ฌธ์ ์ ๋๋ค. ์ฐ๋ฆฌ ์ค ๋๊ตฌ๋ ์๋ชป๋ ๊ธฐ๊ฐ์ ์ถ์ ํ๋ ๋ฐ ์๊ฐ์ ๋ณด๋ด๋ ์ฌ๋๋ค์ ๋ํ ๋ณด๊ณ ๋ฅผ ๋ฐ๊ณ ์ถ์ดํ์ง ์์ต๋๋ค...=
๋ฐ..
๊ฒ์ ๋ฏธํ์ ์ผ๋ก ๋ ๋งค๋ ฅ์ ์ด์ง๋ง ์์ ์ค์ ์ ์ธ ์ค์ ๋ฌธ์ ๋ฅผ ํผํ ์ ์์ต๋๋ค. ์์ฃผ ๋ถ๋๋ฌ์ด ๋ฐฉ์์ผ๋ก ๋กค์์ํ ์๋ ์์ต๋๋ค. ๋จผ์ ..=
๋ฅผ ๋์ ๊ตฌ๋ฌธ์ผ๋ก ๋์ ํ๊ณ (rustfmt ๊ฐ ๋ค์ ์์ฑํ ์ ์์), ๊ด์ฉ์ ์ด ๋ ํ์๋ง...
์ฌ์ฉํ์ง ์์ต๋๋ค.๋งํ ์ ์๋ ๊ฒฝ์ฐ๋ฅผ ๋๋นํ์ฌ ํ์
..=
๋ฐ..
๊ฐ ์ฐ๋ฆฌ์ ์ต์ ์ ๊ธธ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. ์ด ๋ฌธ์ ๋ ๋ํ ์๋ก์ด ์ฃผ์ฅ์ด ์ ๊ธฐ๋ ๊ฐ๋ฅ์ฑ์ด ๋งค์ฐ ๋ฎ๋ค๋ ์ ์์ ๋ ผ์๋์์ต๋๋ค. ๊ทธ๋์ ์ฐ๋ฆฌ๋ ๋ฐ์ด๋ค ์ค๋น๊ฐ ๋์์ต๋๋ค. ์ฐ๋ฆฌ๋ ๋ ๊ฐ์ง ๋ชจ๋์ ๋ํด..=
ํ๊ธฐ๋ฒ์ ๊ตฌํํ๊ณ ์ ํ๋ ์ฌ๋์ ์ฐพ๊ณ ์์ต๋๋ค. ํจํด๊ณผ ํํ, ๊ทธ๋ฆฌ๊ณ ์ด์ด์ ์ฐ๋ฆฌ๋ FCP๋ก ๊ฐ ๊ฒ์ ๋๋ค!