๋ฐ์ํ nomad-coder12 [์ฝ๊ณ ๋น ๋ฅธ Go ์์ํ๊ธฐ] #2.1 Methods part One [์ถ์ฒ - Nomad Coders] Method๋ function์ด๋ ๋น์ทํ์ง๋ง ์กฐ๊ธ ๋ค๋ฅด๋ค. // function func NewAccount(owner string) *Account { account := Account{owner: owner, balance: 0} return &account } // method func (a Account) Balance() int { // func ๋ฐ๋ก ๋ค์ ๋ณ์์ ๋ณ์์ ํ์ ์ ์ ์ด์ค๋ค. return a.balance } Go์์๋ ์๋์ (a Account) ๋ถ๋ถ์ receiver๋ผ๊ณ ํ๋ค. receiver์ ์์ฑํ ๋๋ ๋ช ๊ฐ์ง ์ง์ผ์ผํ ๊ท์น์ด ์๋ค. ์์ (a Account)๋ฅผ ๋ฐ์ struct์ ์ฒซ ๊ธ์๋ฅผ ๋ฐ์ ์๋ฌธ์๋ก ์ง์ด์ผ ํ๋ค. 2021. 11. 2. [์ฝ๊ณ ๋น ๋ฅธ Go ์์ํ๊ธฐ] #2.0 Account + NewAccount ๋ถ์ : GO์์ constructor์ ๋ง๋๋ ๋ฒ accounts/accounts.go package accounts // Account struct type Account struct { owner string balance int } // NewAccount creates Account func NewAccount(owner string) *Account { account := Account{owner: owner, balance: 0} return &account } main.go package main import ( "fmt" "github.com/serranoarevalo/learngo/accounts" ) func main() { account := accounts.NewAccount("n.. 2021. 11. 2. [์ฝ๊ณ ๋น ๋ฅธ Go ์์ํ๊ธฐ] #1.11 Structs [์ถ์ฒ - Nomad Coders] struct๋ object์ ๋น์ทํ๋ฉด์ map๋ณด๋ค๋ ์ ์ฐํ๋ค. struct๋ structure(๊ตฌ์กฐ์ฒด) ๊ฐ์๊ฑด๋ฐ struct๋ฅผ ๋ง๋ค๊ธฐ ์ํด์ ๋จผ์ ์ด๋ค struct์ธ์ง ์ ์ํด ์ค์ผ ํ๋ค. ๊ทธ๋ฆฌ๊ณ ๋ช ํํ๊ฒ ์์ฑ์ ํด์ผ ํ๋ค. { key: value } ๋ฅผ ์ ๋ถ ๋ช ์ํด ์ฃผ๋ ๊ฒ์ด ์ข๋ค. ๊ทธ๋ฆฌ๊ณ struct์๋ constructor๊ฐ ์๋ค. ์ฐ๋ฆฌ ์ค์ค๋ก constructor๋ฅผ ์คํํด์ผ ํ๋ค. package main import "fmt" type person struct { // struct name string // structure์ ํํ (object) age int // structure์ ํํ (object) favFood []string // structure์ .. 2021. 10. 29. [์ฝ๊ณ ๋น ๋ฅธ Go ์์ํ๊ธฐ] #1.10 Maps [์ถ์ฒ - Nomad Coders] Go์์์ map์ Python์ด๋ JavaScript์ object์ ์ฝ๊ฐ ๋น์ทํ๋ค. ํ์ง๋ง ์์ ํ ๋๊ฐ์ง๋ ์๋ค. character ํํ์ map์ ์์ฑํ๊ธฐ ์ํด์ ํด์ผ ํ ๊ฒ์ map์ Key์ Value์ Type์ ์ ์ธํด์ค๋ค. ๊ทธ๋ฆฌ๊ณ map๋ range๋ฅผ ์ด์ฉํด์ ๋ฐ๋ณต๋ฌธ์ ์ด์ฉํ ์ ์๋ค. package main import "fmt" func main() { nico := map[string]string{"name": "nico", "age": "12"} for key, value := range nico { fmt.Println(key, value) } } ์ด๋ ๊ฒ๋ ๋ง๋ค ์ ์๋ค. // Key๋ฅผ ์ถ๋ ฅํ๊ณ ์ถ์ง ์์ ๋ package main import ".. 2021. 10. 29. [์ฝ๊ณ ๋น ๋ฅธ Go ์์ํ๊ธฐ] #1.9 Arrays and Slice [์ถ์ฒ - Nomad Coders] Go ์์๋ Array๋ฅผ ๋ง๋๋ ค๋ฉด Array์ ๊ธธ์ด๋ฅผ ๋ช ์ํด ์ค์ผ ํ๋ค. names := [5]string{"nico", "lynn", "dal"} [] ์์ length๋ฅผ ๋ช ์ํด์ฃผ์๋ค. ์์ ๊ฐ์ ๊ฒฝ์ฐ์ ์ฌ์ฉํ๋๊ฒ Slice ์ธ๋ฐ, Go ์์์ Slice๋ Array๋ ๋น์ทํ๋ค. ํ์ง๋ง Slice๋ length ์์ด๋ ์ฌ์ฉ์ด ๊ฐ๋ฅํ๋ค. ์ํ๋ค๋ฉด ์์๋ฅผ ๋ ์ถ๊ฐํ ์๋ ์๋ค. Slice์ ์ฌ์ฉ๋ฒ names := []string{"nico", "lynn", "dal"} ๊ทธ๋ฅ [] ์์ length๋ฅผ ์ ์ธํ์ง ์์ผ๋ฉด ๋๋๋ฏ. Slice ์ item์ ์ถ๊ฐํ๊ธฐ ์ํด ์ฌ์ฉํ๋ ๊ฒ์ append()๋ผ๋ ํจ์์ด๋ค. append๋ 2๊ฐ์ arguments๋ฅผ ์๊ตฌํ๋ค. ์ฒซ๋ฒ์งธ arg.. 2021. 10. 29. [์ฝ๊ณ ๋น ๋ฅธ Go ์์ํ๊ธฐ] #1.8 Pointers! [์ถ์ฒ - Nomad Coders] a์ ๊ฐ์ ๋ฐ๊ฟ๋ b์ ๊ฐ์ ๋ณํ์ง ์๋๋ค! package main import "fmt" func main() { a := 2 b := a a = 10 fmt.Println(a, b) } package main import "fmt" func main() { a := 2 b := a a = 10 a = 200202020202020200 fmt.Println(a, b) } ๋ฌด์์ธ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์๋ฅผ ๋ณด๊ณ ์ถ์๋ '&'๋ฅผ ์ฌ์ฉํ๋ค. & = address // ๋ฌด์์ธ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๋ณด๋ ๋ฐฉ๋ฒ package main import "fmt" func main() { a := 2 b := 5 fmt.Println(&a, &b) } ์ฃผ์๋ฅผ ์ ์ฅํ๊ณ ์ถ๋ค๋ฉด ์๋์ ๊ฐ์ ๋ฐฉ์์ผ๋ก ์ฃผ์๋ฅผ.. 2021. 10. 29. ์ด์ 1 2 ๋ค์ ๋ฐ์ํ