Effective-go
effective go๋ฅผ ์ฝ๊ณ ์ ๋ฆฌํฉ๋๋ค.
Formatting
Go์์๋ ์ปดํจํฐ๊ฐ ๋๋ถ๋ถ์ ํฌ๋งทํ ์ด์๋ฅผ ์ฒ๋ฆฌํ๋๋ก ํ๋ ์ ๊ทผ๋ฒ์ ์ทจํ๋ค.
gofmt์ด ๋ค์ฌ์ฐ๊ธฐ, ์์ง ์ค๋ง์ถค, ์ฃผ์ ํฌ๋งทํ ๋ฑ์ ํ์ค ์คํ์ผ๋ก ๋ณ๊ฒฝํด์ค๋ค.
๋ค์ฌ์ฐ๊ธฐ๋ ํญ์ ์ฌ์ฉํ๋ค.
์ค ๊ธธ์ด์๋ ์ ํ์ด ์๋ค.
Commentary
godoc์ ์ฝ๋๊ฐ ํฌํจํ๋ ๋ด์ฉ์ ๋ฌธ์ํํ์ฌ ๋ ธ์ถํด์ค๋ค. ์ด ๋ ์ฃผ์๋ ์ถ์ถํ์ฌ ์ค๋ช ๋ฌธ์๋ก ์ ๊ณตํด์ค๋ค.
์ ์ธ๋ถ ์ด์ ์ ์ฃผ์์ ๋๋ค.
๋ชจ๋ ํจํค๋ ํจํค์ง ๊ตฌ๋ฌธ ์ด์ ์ "ํจํค์ง ์ฃผ์"์ ๊ฐ์ง๋ ๊ฒ ์ข๋ค.
ํจํค์ง๊ฐ ๊ฐ๋จํ ๊ฒ์ด๋ฉด ํจํค์ง ์ฃผ์๋ ๊ฐ๋จํ๊ฒ ์์ฑํ๋ฉด ๋๋ค.
์ค๋ช ํ๋ ค๋ ์ ์ธ๋ถ์ ์ด๋ฆ์ผ๋ก ์ฃผ์์ ์์ํด๋ผ
์์ - func Compile() : //Compile parses a regular ..
Names
Go์์๋ ์ด๋ฆ์ ์ฒซ ๊ธ์๊ฐ ๋๋ฌธ์์ธ์ง ์๋ฌธ์์ธ์ง์ ๋ฐ๋ผ ํจํค์ง ๋ฐ์์์ ๋ ธ์ถ ์ฌ๋ถ๊ฐ ์ ํด์ง๋ค.
๊ด๋ก์ ์ผ๋ก, ํจํค์ง๋ช ์ ์๋ฌธ์, ํ ๋จ์ด๋ก๋ง ๋ถ์ฌํ๋ฉฐ ์ธ๋๋ฐ(_)๋ ๋์๋ฌธ์ ํผ์ฉ์ ๋ํ ํ์๊ฐ ์์ด์ผํ๋ค.
ํจํค์ง ์ด๋ฆ์ ๋ค์ด๋ฐ์ ํ์ฉํ๋ผ. ์๋ฅผ ๋ค๋ฉด, bufio ํจํค์ง์ ์๋ ๋ฒํผ ๋ฆฌ๋๋ BufReader๊ฐ ์๋ Reader๋ก ๋ถ๋ฆฐ๋ค. bufio.Reader๊ฐ bufio.BufReader๋ณด๋ค ๋ช ํํ๊ณ ๊ฐ๊ฒฐํ๊ธฐ ๋๋ฌธ์ด๋ค.
getter ๋ฉ์๋์ Get์ ์ฐ์ง ์๋๋ค. ์๋ฅผ ๋ค๋ฉด, obj.GetOwner() ๋์ obj.Owner()๋ฅผ ์ด๋ค.
์ธ๋๋ฐ๋ฅผ ์ฐ์ง ์๊ณ MixedCaps ํน์ mixedCaps๋ก ์ด๋ค.
Semicolons
Go์์๋ ๊ตฌ๋ฌธ๋ถ์๊ธฐ(lexer)๊ฐ ๊ฐ๋จํ ๊ท์น์ ์ฌ์ฉํ์ฌ ์๋์ผ๋ก ์ธ๋ฏธ์ฝ๋ก ์ ์ฝ์ ํ๋ค.
๊ท์น์ ๊ฐ๋จํ๊ฒ ์ค๋ช ํ๋ฉด, "๊ตฌ๋ฌธ์ ๋๋ผ ์ ์๋ ํ ํฐ ๋ค์ ์๋ก์ด ๋ผ์ธ์ด ์ค๋ฉด, ์ธ๋ฏธ์ฝ๋ก ์ ์ฝ์ ํ๋ผ"์ด๋ค.
์ฃผ์ํ ๊ฒ์ ์ ์ด๋ฌธ์ ์ฌ๋ ์ค๊ดํธ๋ฅผ ๋ค์ ๋ผ์ธ์ ์ฌ์ฉํ์ง ๋ง์์ผ ํ๋ค๋ ๊ฒ์ด๋ค. ์๋ฅผ ๋ค๋ฉด, ๋ค์๊ณผ ๊ฐ์ด ์ฝ๋๋ฅผ ์ฐ๋ฉด ์ธ๋ฏธ์ฝ๋ก ์ด ์๋ํ์ง ์์ ๊ณณ์ ์ถ๊ฐ๋ ๊ฒ์ด๋ค.
Control Structures
go์ธ์ด์๋ do๋ while์ด ์กด์ฌํ์ง ์๋๋ค. ๋์ , ์ข ๋ ์ผ๋ฐํ๋ for๋ฌธ๊ณผ ์ ์ฐํ switch๋ฌธ์ด ์กด์ฌํ๋ค.
For๋ฌธ์ ๋ค์ ์ธ ๊ฐ์ง ํํ๋ก ์ฌ์ฉํ ์ ์๋ค.
if else if else๋ฅผ ๋ฐ๋ณตํ์ฌ ์์ฑํ๋ ๊ฒ๋ณด๋ค switch๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ๋ Go ์ธ์ด๋ต๋ค. ๋ค์์ฒ๋ผ ์ฌ์ฉํ ์ ์๋ค.
์ธํฐํ์ด์ค ๋ณ์์ ๋์ ํ์ ์ ์ฌ์ฉํ ๋ switch๋ฅผ ์ฌ์ฉํ ์ ์๋ค.
Functions
Go ์ธ์ด๊ฐ ๊ฐ์ง๊ณ ์๋ ํน์ง ์ค ํ๋๋ ํจ์์ ๋ฉ์๋๊ฐ ์ฌ๋ฌ ๊ฐ์ ๋ฐํ ํ ์ ์๋ค๋ ๊ฒ์ด๋ค.
์๋์ ๊ฐ์ ํํ๋ ์ง๊ทนํ ์ผ๋ฐ์ ์ด๋ค.
์ด๋ฆ ์๋ ๊ฒฐ๊ณผ (Named result parameters)๋ฅผ ๋ฐํํ๋ ๊ฒ์ด ๊ฐ๋ฅํ๋ค.
๊ฒฐ๊ณผ์ ์ด๋ฆ์ ๋ถ์ฌํ๋ฉด ์ฝ๋๋ฅผ ๋ ์งง๊ณ ๋ช ํํ๊ฒ ๋ง๋ค์ด ์ฃผ๋ฉฐ, ๋ฌธ์ํ๊ฐ ๋๋ค.
Last updated