gost v0.2.1

https://github.com/myyrakle/gost
Go์—์„œ Rust์˜ ๋ฉ‹์ง„ ์ด๋””์—„์„ ๊ฒฝํ—˜ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” ์œ ํ‹ธ ๋ชจ๋“ˆ์ด๋‹ค.

Go์˜ ํƒœ์ƒ์ ์ธ ํ•œ๊ณ„ ํƒ“์— ์žฌํ˜„์—๋Š” ์ข€ ํ•œ๊ณ„๊ฐ€ ์žˆ์—ˆ๋‹ค.
Go๋Š” ์ถ”๋ก ๊ธฐ๋Šฅ๋„ ๋”ธ๋ฆฌ๊ณ , ๋ฉ”์„œ๋“œ์— ์ œ๋„ˆ๋ฆญ์„ ๋‹ค๋Š” ๊ฒƒ๋„ ์•ˆ๋˜๊ธฐ ๋•Œ๋ฌธ์—...




์„ค์น˜

์„ค์น˜๋Š” ๊ฐ„๋‹จํ•˜๊ณ , ๋น ๋ฅด๋‹ค. ๋””ํŽœ๋˜์‹œ์— ๋ญ๊ฐ€ ์žˆ์ง€๋„ ์•Š๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

go get github.com/myyrakle/gost@v0.2.1

๊ทธ๋ฆฌ๊ณ  importํ•ด์„œ ์“ฐ๋ฉด ๋œ๋‹ค.




ํ”„๋ฆฌ๋ฏธํ‹ฐ๋ธŒ ๋ž˜ํผ

ํŠธ๋ ˆ์ž‡๋“ค์„ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•˜๊ธฐ ์œ„ํ•ด ๊ธฐ๋ณธํƒ€์ž…๋“ค์„ ์ฃ„๋‹ค ๋ž˜ํ•‘ํ•ด๋†จ๋‹ค.
๊ณ ์ŠคํŠธ์˜ ํ˜œํƒ์„ ๋ˆ„๋ฆฌ๋ ค๋ฉด ๋Œ€์‹  ์ด๊ฒƒ๋“ค์„ ์จ์•ผ ํ•œ๋‹ค.




ํŠธ๋ ˆ์ž‡

Rust์˜ ํŠธ๋ ˆ์ž‡๋“ค์„ ์ตœ๋Œ€ํ•œ ์ด์‹ํ–ˆ๋‹ค.

์‚ฌ์น™์—ฐ์‚ฐ๋“ค๋„ ์žˆ๊ณ  (์•„์ง ๊ธฐ๋ณธํƒ€์ž…๋“ค์— ๋Œ€ํ•ด ๊ตฌํ˜„์ด ๋˜์ง€ ์•Š์Œ)


๊นŠ์€ ๋ณต์‚ฌ๋ฅผ ์ •์˜ํ•˜๋Š” clone๋„ ์žˆ๋‹ค.


์˜ค๋”๋ง๋„ ์žˆ๋‹ค. ์ด๊ฑธ๋กœ ์ •๋ ฌ์„ ๊ตฌํ˜„ํ•  ์˜ˆ์ •์ด๋‹ค. (์•„์ง ์˜๋ฏธ์žˆ๊ฒŒ ์“ฐ๊ณ ์žˆ์ง„ ์•Š๋‹ค.)


์ถœ๋ ฅํ• ๋•Œ ์“ธ Display๋‚˜ Debug ํŠธ๋ ˆ์ž‡๋„ ์žˆ๋‹ค.
์ด๊ฑด ์ง€๊ธˆ ๊ธฐ๋ฐ˜์šฉ์œผ ์ž˜ ์“ฐ๊ณ  ์žˆ๋‹ค.




Option๊ณผ Result

Go์˜ ๊ฑฐ์ง€๊ฐ™์€ ์—๋Ÿฌ์ฒ˜๋ฆฌ๋ฅผ ๋ณด์™„ํ•ด์ค„ ์ˆ˜ ์žˆ๋Š” ๋ชจ๋‚˜๋“œ ํƒ€์ž…์ด๋‹ค.
์ด๋Ÿฐ์‹์œผ๋กœ ๊ฐ์‹ธ์„œ ์ฒ˜๋ฆฌํ•˜๋ฉด

ํƒ€์ž…์„ ํ†ตํ•ด ์–ด๋А์ •๋„ ์ฒ˜๋ฆฌ๋ฅผ ๊ฐ•์ œํ•˜๊ณ  ๊ฐ€์‹œํ™”ํ•  ์ˆ˜ ์žˆ๋Š” ๋ถ€๋ถ„์ด ์ƒ๊ธด๋‹ค.

๊ทธ๋ฆฌ๊ณ  ์ž์ฒด์ ์ธ ์ถœ๋ ฅ ํ•จ์ˆ˜๋ฅผ ํ†ตํ•ด rust ์Šคํƒ€์ผ์˜ ์ถœ๋ ฅ ํฌ๋งท์„ ์ง€์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.

์•„์ง ๊ธฐ๋Šฅ์ด ์™„์ „ํ•˜์ง€๋Š” ์•Š๋‹ค.




์ž๋ฃŒ๊ตฌ์กฐ: Vec

๋ฒกํ„ฐ ํƒ€์ž…์„ ์ œ๊ณตํ•œ๋‹ค. ์‚ฌ์‹ค์ƒ ๋‚ด๋ถ€ ๊ตฌํ˜„์€ ์Šฌ๋ผ์ด์Šค์ด๊ธด ํ•˜๋‹ค.
๋Œ€์‹  ๋ฉ”์„œ๋“œ์˜ ์ œ๊ณต์„ ํ†ตํ•ด ์ข€๋” ํ’์กฑํ•œ ์‚ฌ์šฉ์„ฑ์„ ์ œ๊ณตํ•œ๋‹ค.




Iterator: Vec

iterator๋„ ์žˆ๋‹ค. ์•„์ง ๊ทธ๋ฆฌ ์™„์ „ํ•˜์ง„ ์•Š์ง€๋งŒ, ๋Œ€์ถฉ ์“ธ ์ˆ˜๋Š” ์žˆ๊ฒŒ ํ•ด๋†จ๋‹ค.


์ด์™ธ์—๋„ ์•„์ง ๋งŒ๋“ค๊ฒŒ ๋งŽ๋‹ค.