๋ฐ์ํ Data Base/Go28 [Golang] for ๋ฐ๋ณต๋ฌธ Go ๋ for ๋ฐ๋ณต๋ฌธ์ด๋ผ๋ ๋จ ํ๋์ ๋ฐ๋ณต ๊ตฌ์กฐ๋ฅผ ๊ฐ์ง๋ค. ๊ธฐ๋ณธ์ ์ธ for ๋ฐ๋ณต๋ฌธ์ ; ์ผ๋ก ๊ตฌ๋ณ๋๋ ์ธ ๊ฐ์ง ๊ตฌ์ฑ ์์๋ฅผ ๊ฐ๋๋ค. ์ด๊ธฐํ ๊ตฌ๋ฌธ: ์ฒซ ๋ฒ์งธ iteration ์ ์ ์ํ๋ฉ๋๋ค. ์กฐ๊ฑด ํํ: ๋งค ๋ชจ๋ iteration ์ด์ ์ ํ๋ณ๋ฉ๋๋ค. ์ฌํ ๊ตฌ๋ฌธ: ๋งค iteration ๋ง์ง๋ง์ ์ํ๋ฉ๋๋ค. ์ด๊ธฐํ ๊ตฌ๋ฌธ์ ์ฃผ๋ก ์งง์ ๋ณ์ ์ ์ธ์ผ ๊ฒ์ด๋ฉฐ ๊ฑฐ๊ธฐ์ ์ ์ธ๋ ๋ณ์๋ค์ for๋ฌธ์ ์ค์ฝํ ๋ด์์๋ง ๋ณด์ฌ์ง๋ค. ๋ฐ๋ณต๋ฌธ์ ์กฐ๊ฑด ํ๋ณ์ boolean ๊ฐ์ด false ์ด๋ฉด iterating์ ์ข ๋ฃํ๋ค. ์ฃผ์: C ๋ Java, JavaScript์ ๊ฐ์ ๋ค๋ฅธ ์ธ์ด๋ค๊ณผ ๋ฌ๋ฆฌ Go๋ for๋ฌธ์ ์ธ ๊ฐ์ง ๊ตฌ์ฑ ์์๋ฅผ ๊ฐ์ธ๋ ๊ดํธ๊ฐ ์๊ณ , { } ๊ดํธ๊ฐ ํญ์ ํ์์ด๋ค. ์์ // ์ผ๋ฐ์ ์ธ for ๋ฌธ package ma.. 2021. 11. 1. [Golang] Zero values , Nil slices Zero values ๋ช ์์ ์ธ ์ด๊น๊ฐ ์์ด ์ ์ธ๋ ๋ณ์๋ ๊ทธ๊ฒ์ zero value ๊ฐ ์ฃผ์ด์ง๋ค. zero value ๋ ๋ค์๊ณผ ๊ฐ๋ค. ์ซ์ Type์๋ 0 Boolean Type์๋ False String์๋ "" (๋น ๋ฌธ์์ด) Nil slices (nil ์ฌ๋ผ์ด์ค) Slice์ zero value๋ nil ์ด๋ค. nil Slice์ ๊ธธ์ด(length)์ ์ฉ๋(capacity)์ 0์ด๋ฉฐ, ๊ธฐ๋ณธ ๋ฐฐ์ด์ ๊ฐ์ง๊ณ ์์ง ์๋ค. ์์ package main import "fmt" func main() { var s []int fmt.Println(s, len(s), cap(s)) if s == nil { fmt.Println("nil!") } } [์ฐธ๊ณ ์ฌ์ดํธ - a Tour of Go] 2021. 11. 1. [์ฝ๊ณ ๋น ๋ฅธ 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 3 4 5 ๋ค์ ๋ฐ์ํ