[Go] Mordern Go ๊ธฐ๋ณธ2(ํจ์, ์ธํฐํ์ด์ค, ๋ฉ์๋, ์๋ฌ)
ํจ์โ ์ฌ๋ฌ๊ฐ ๋ฐํ๊ฐfunc divmod(a, b int) (int, int) { return a / b, a % b}q, r := divmod(10, 3) // q=3, r=1โ ์ด๋ฆ ์๋ ๋ฐํ๊ฐfunc sum(a, b int) (result int) { result = a + b return // ์ด๋ฆ ์์ผ๋ฉด return ์ ๋ณ์ ์๋ต ๊ฐ๋ฅ}โ ํจ์๋ ์ผ๊ธ๊ฐ์ฒดfunc operate(a, b int, f func(int, int) int) int { return f(a, b)}sum := func(x, y int) int { return x + y } // ๋๋คresult := operate(3, 4, sum) // 7โ ๋๋ค(์ต๋ช
ํจ์)result := func(x int..
2025. 5. 21.
[Go] Modern Go ๊ธฐ๋ณธ
๋ค์ด๊ฐ๋ฉฐGo์ ๊ธฐ๋ณธ ์ฌ์ฉ๋ฒ์ ๋ํด์ ์์๋ณด๊ฒ ์ต๋๋ค. ํ๋ก๊ทธ๋๋ฐ ๊ธฐ์ด ๋ฌธ๋ฒ์ ๋ํด์ ๋ค๋ฃจ์ง๋ ์์ต๋๋ค. ํ ์ธ์ด์ ๋น๊ตํ์ ๋ ์ด๋ค ํธ๋ฆฌํ ์ ๊ณผ ์ฐจ์ด๊ฐ ์๋์ง ๊ฐ๋จํ ์ง์ด๋ณด๊ฒ ์ต๋๋ค. ๋ณ์์ ์ ํ์
: int8/16/32/64, uint8/16/32/64, int, uint, runerune: UTF-8์ธ์ฝ๋ฉ์ ์ ๋์ฝ๋ ์ฝ๋ ํฌ์ธํธ๋ฅผ ํ์ํ๋ ์ ์๊ธฐ๋ณธ๊ฐ: ์ ์ 0, ์ค์ 0.0, ๋ถ๋ฆฌ์ธ false, ๋ฌธ์์ด “”, ๊ทธ์ธ nil์์์ ํ์
๋ณํ ํ์ฉX์ค์ ๋น๊ต์ math.Nexafter๋ก ๋น๊ตํ๋ฉด ํธ๋ฆฌa, b = b, a ์ค์iota๋ก ์ด๊ฑฐ๊ฐ ์ฌ์ฉconst ( Red int = iota // 0 Blue int = iota // 1 Green int = iota // 2 Yellow int ..
2025. 5. 21.
Structured Bindings์ ๋ชจ๋ ๊ฒ
Structured Bindings๋ C++17์์ ๋์
๋ ๊ธฐ๋ฅ์ผ๋ก, ๋ณตํฉ ๋ฐ์ดํฐ ๊ตฌ์กฐ(์: std::tuple, std::pair, ๋ฐฐ์ด, ๊ตฌ์กฐ์ฒด ๋ฑ)์์ ์ฌ๋ฌ ๊ฐ์ ๋์์ ์ถ์ถํ๊ณ , ๊ฐ๊ฐ์ ๋ณ๋์ ๋ณ์์ ๋ฐ์ธ๋ฉํ ์ ์๋ ํธ๋ฆฌํ ๋ฐฉ๋ฒ์ ์ ๊ณตํฉ๋๋ค. ์ด๋ ํนํ ํํ์ด๋ ์ฌ์ฉ์ ์ ์ ๊ตฌ์กฐ์ฒด์์ ์ ์ฉํ๋ฉฐ, ์ฝ๋์ ๊ฐ๋
์ฑ๊ณผ ํธ์์ฑ์ ํฌ๊ฒ ํฅ์์ํต๋๋ค.1. ๊ธฐ๋ณธ ๊ฐ๋
Structured Bindings๋ฅผ ์ฌ์ฉํ๋ฉด, ๋ณตํฉ ๋ฐ์ดํฐ ๊ตฌ์กฐ์์ ๊ฐ ์์๋ฅผ ์ฝ๊ฒ ๋ถํดํ์ฌ ๊ฐ๊ฐ์ ๋ณ์์ ๋ด์ ์ ์์ต๋๋ค. ์ด๋ auto ํค์๋์ ์ ์ฌํ ๋ฌธ๋ฒ์ ์ฌ์ฉํ์ฌ ๊ตฌํ๋ฉ๋๋ค.๊ธฐ๋ณธ ์ฌ์ฉ๋ฒ:auto [var1, var2, var3] = someTuple;์ฌ๊ธฐ์ someTuple์ ๋ณตํฉ ๋ฐ์ดํฐ ๊ตฌ์กฐ์ด๊ณ , [var1, var2, var3]๋ ..
2024. 8. 27.