๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๋ฐ˜์‘ํ˜•

golang27

[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.
[Golang] cannot find package (from $GOROOT) (from $GOPATH) scrapper/scrapper.go:12:2: cannot find package "github.com/PuerkitoBio/goquery" in any of: /usr/local/go/src/github.com/PuerkitoBio/goquery (from $GOROOT) /Users/yunkyunglee/go/src/github.com/PuerkitoBio/goquery (from $GOPATH) ์ผ๋‹จ ๊ฒฝ๋กœ๋ฅผ ๊ฒ€์ƒ‰ํ•ด๋ณด์•˜๋‹ค. $ go env | grep GOROOT $ go env | grep GOPATH ๊ฒฝ๋กœ๊ฐ€ ๋‘˜ ๋‹ค ๋‹ฌ๋ž๋‹ค !!!! ๊ทธ๋ž˜์„œ ๊ฒฝ๋กœ๋ฅผ ๋งž์ถฐ์ฃผ์—ˆ๋‹ค! $ export GOROOT=$HOME/go/bin ํ•ด๊ฒฐ ์™„๋ฃŒ~ 2021. 10. 29.
[์‰ฝ๊ณ  ๋น ๋ฅธ 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.
๋ฐ˜์‘ํ˜•