[Zig] ๊ตฌ์กฐ์ฒด
zig์ ๊ตฌ์กฐ์ฒด ์ ์๋ Rust์ Go๋ฅผ ์์ด๋์ ํํ๋ฅผ ์ง๋๋ค.
์๋๋ ๊ฐ๋จํ 2์ฐจ์ ์ขํ ์ ๋ณด๋ฅผ ๊ธฐ๋กํ๋ ๊ตฌ์กฐ์ฒด ์์ ๋ค.
Point๊ฐ ๊ตฌ์กฐ์ฒด๋ช
์ด๊ณ , x์ y๋ผ๋ ํ๋๋ฅผ ๊ฐ๊ณ ์๋ค.
์ฌ์ฉ๋ฒ์ ๋ค์๊ณผ ๊ฐ๋ค.
๊ตฌ์กฐ์ฒด ์ด๊ธฐํ๋ ๋ C์์ ๋ฒ ๊ปด์๋ค.
ํ๋๋ช
์์ .์ ๋ถ์ด๊ณ =๋ก ์ด๊ธฐํํ๋ ํํ๋ค.
์์๊ฐ ์๋๋ผ๋ฉด ๋น์ฐํ ํ๋์ ๊ฐ ๋ณ๊ฒฝ๋ ๊ฐ๋ฅํ๋ค.
๋ค๋ง zig๋ ์์ฆ์ ๋ง๋งํ ์ธ์ด๋ค๊ณผ ๋ค๋ฅด๊ฒ ๋ด๋ถ ๊ฐ๋ณ์ฑ๋ ์ฒ ์ ํ ๊ฒ์ฌํ๋ค.
๊ฐ์ฒด๊ฐ const๋ฉด ๋ด๋ถ ํ๋์ ๋ํ ๋ถ๋ณ์ฑ๋ ๊ฒ์ฌ๋ฅผ ํ๋ค.
๋ณ์ ์ค์ ๋ฃ๊ธฐ
zig์ ๊ตฌ์กฐ์ฒด ์ ์๋ ์์๋ ๋ณ์ ๊ฐ์ ์ ์ญ๊ฐ์ ์ค์ ๋ฃ๋ ๊ธฐ๋ฅ์ด ์ ๊ณต๋๋ค.
์ฌ์ฉํ๋๋ฐ ์์ด์ ๋ณ๋ค๋ฅธ ์ ์ฝ์ ์๋ค.
ํ๋ ๊ธฐ๋ณธ๊ฐ
zig๋ ๋์จํ๋ฉด์๋ ๋ปฃ๋ปฃํ ์ธ์ด๋ค.

๊ตฌ์กฐ์ฒด์ ์ด๊ธฐํ์๋ ํญ์ ๋ชจ๋ ํ๋์ ๋ช
์์ ์ด๊ธฐํ๋ฅผ ์๊ตฌํ์ง๋ง
๊ทธ๊ฒ ๊ท์ฐฎ๋ค๋ฉด ๋ํดํธ๊ฐ์ ๋ฃ์ผ๋ฉด ๋๋ค.
๋ฉ์๋ ์ ์
๋ฉ์๋ ์ ์๋ ๊ตฌ์กฐ์ฒด ์ ์ ๋ด์ ํจ์๋ฅผ ๊ตฌ๊ฒจ๋ฃ๋ ํํ๋ก ์์ฑ๋๋ค.
์ข ํน์ดํ ๊ฒ์, ๊ธฐ๋ณธ์ ์ผ๋ก ์ ์ ํจ์์ง๋ง ๊ฐ์ฒด์ ๋์ ๋ฉ์๋์ธ ๊ฒ์ฒ๋ผ๋ ์ฌ์ฉํ ์ ์๋ค๋ ๊ฒ์ด๋ค.
์๋ฅผ ๋ค์ด, ๋ค์๊ณผ ๊ฐ์ด ์ธ ์ ์๋ ๊ฒ์ด๋ค.

init์ ๊ฒฝ์ฐ์๋ ๋น์ฐํ ์์ฑ์ฉ ํจ์์ด๋ ๊ฐ์ฒด์ ๋ณ๊ฐ๋ก ์ฌ์ฉํ๋ค.
ํ์ง๋ง add๋ a.add(b)์ ํํ๋ก๋, add(a,b)์ ํํ๋ก๋ ์ฌ์ฉํ ์ ์๋ค. ์ทจํฅ๋๋ก ์ฌ์ฉํ๋ฉด ๋๋ค.