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

Data Base56

[์‰ฝ๊ณ  ๋น ๋ฅธ 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.
[Golang] Slices (์Šฌ๋ผ์ด์Šค) Array๋Š” ๊ณ ์ •๋œ ํฌ๊ธฐ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. ๋ฐ˜๋ฉด์— Slice๋Š” Array์˜ ์š”์†Œ๋“ค์„ ๋™์ ์ธ ํฌ๊ธฐ๋กœ ์œ ์—ฐํ•˜๊ฒŒ ๋ณผ ์ˆ˜ ์žˆ๋‹ค. ์‹ค์ œ๋กœ Slice๋Š” Array๋ณด๋‹ค ํ›จ์”ฌ ํ”ํ•˜๋‹ค. []T ํƒ€์ž…์€ T ํƒ€์ž…์„ ์›์†Œ๋กœ ๊ฐ€์ง€๋Š” Slice์ด๋‹ค. Slice๋Š” ์ฝœ๋ก (:)์œผ๋กœ ๊ตฌ๋ถ„๋œ ๋‘ ๊ฐœ์˜ index(ํ•˜ํ•œ๊ณผ ์ƒํ•œ)๋ฅผ ์ง€์ •ํ•˜์—ฌ ํ˜•์„ฑ๋œ๋‹ค. a[low : high] ์ด๊ฒƒ์€ ์ฒซ ๋ฒˆ์งธ ์š”์†Œ๋ฅผ ํฌํ•จํ•˜์ง€๋งŒ ๋งˆ์ง€๋ง‰ ์š”์†Œ๋ฅผ ์ œ์™ธํ•˜๋Š” ๋ฒ”์œ„๋ฅผ ์„ ํƒํ•œ๋‹ค. ์•„๋ž˜ ํ‘œํ˜„์€ a์˜ ์ฒซ๋ฒˆ์งธ๋ถ€ํ„ฐ ์„ธ๋ฒˆ์งธ ์š”์†Œ๋ฅผ ํฌํ•จํ•˜๋Š” ์Šฌ๋ผ์ด์Šค๋ฅผ ์ƒ์„ฑํ•œ๋‹ค. a[1:4] ์˜ˆ์ œ package main import "fmt" func main() { primes := [6]int{2, 3, 5, 7, 11, 13} var s []int = primes[1:4] fmt.Println(s.. 2021. 11. 1.
[Golang] defer defer๋ฌธ์€ ์ž์‹ ์„ ๋‘˜๋Ÿฌ์‹ผ ํ•จ์ˆ˜๊ฐ€ ์ข…๋ฃŒํ•  ๋•Œ๊นŒ์ง€ ์–ด๋– ํ•œ ํ•จ์ˆ˜์˜ ์‹คํ–‰์„ ์—ฐ๊ธฐํ•œ๋‹ค. ์—ฐ๊ธฐ๋œ ํ˜ธ์ถœ์˜ ์ธ์ž๋Š” ์ฆ‰์‹œ ํ‰๊ฐ€๋˜์ง€๋งŒ, ๊ทธ ํ•จ์ˆ˜ ํ˜ธ์ถœ์€ ์ž์‹ ์„ ๋‘˜๋Ÿฌ์‹ผ ํ•จ์ˆ˜๊ฐ€ ์ข…๋ฃŒํ•  ๋•Œ๊นŒ์ง€ ์ˆ˜ํ–‰๋˜์ง€ ์•Š๋Š”๋‹ค. ์˜ˆ์ œ package main import "fmt" func main() { defer fmt.Println("world") fmt.Println("hello") } ์—ฐ๊ธฐ๋œ ํ•จ์ˆ˜ ํ˜ธ์ถœ๋“ค์€ ์Šคํƒ์— ์Œ“์ธ๋‹ค. ํ•œ ํ•จ์ˆ˜๊ฐ€ ์ข…๋ฃŒ๋  ๋•Œ ๊ทธ๊ฒƒ์˜ ์—ฐ๊ธฐ๋œ ํ•จ์ˆ˜๋“ค์€ ํ›„์ž…์„ ์ถœ ์ˆœ์„œ๋กœ ์ˆ˜ํ–‰๋œ๋‹ค. ์˜ˆ์ œ package main import "fmt" func main() { fmt.Println("counting") for i := 0; i < 10; i++ { defer fmt.Println(i) } fmt.Println("done") }.. 2021. 11. 1.
[Golang] Switch Go์˜ switch๋Š” ๋’ค์ด์–ด ์˜ค๋Š” ๋ชจ๋“  case๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ, ์˜ค์ง ์ฒซ ๋ฒˆ์งธ๋กœ ์„ ํƒ๋œ ์ผ€์ด์Šค๋งŒ์„ ์‹คํ–‰ํ•œ๋‹ค๋Š” ์ ์„ ์ œ์™ธํ•˜๊ณ ๋Š” C๋‚˜ C++, Java, Javascript, PHP์™€ ์œ ์‚ฌํ•˜๋‹ค. ์‚ฌ์‹ค์ƒ ์œ„์˜ ์–ธ์–ด๋“ค์—์„œ๋Š” ๊ฐ๊ฐ์˜ case์˜ ๋งˆ์ง€๋ง‰ ๋ถ€๋ถ„์— break ๊ตฌ๋ฌธ์ด ํ•„์š”ํ•˜์ง€๋งŒ Go์—์„œ๋Š” ์ž๋™์œผ๋กœ break๊ฐ€ ์ œ๊ณต๋œ๋‹ค. ๋‹ค๋ฅธ ์ค‘์š”ํ•œ ์ฐจ์ด์ ์€ Go์˜ switch case๋Š” ์ƒ์ˆ˜์ผ ํ•„์š”๊ฐ€ ์—†์œผ๋ฉฐ, ๊ทธ ๊ฐ’๋“ค์€ ์ •์ˆ˜์ผ ํ•„์š”๋„ ์—†๋‹ค. ์˜ˆ์ œ package main import ( "fmt" "runtime" ) func main() { fmt.Print("Go runs on ") switch os := runtime.GOOS; os { case "darwin": fmt.Println("OS X.") case.. 2021. 11. 1.
[Golang] if๋ฌธ Go์˜ if ๋ฌธ์€ for ๋ฐ˜๋ณต๋ฌธ๊ณผ ๋น„์Šทํ•˜๋‹ค. ํ‘œํ˜„์€ ( ) ๊ด„ํ˜ธ๋กœ ๋‘˜๋Ÿฌ์Œ“์ผ ํ•„์š”๋Š” ์—†์ง€๋งŒ, { } ๊ด„ํ˜ธ๋Š” ํ•„์ˆ˜์ด๋‹ค. ์˜ˆ์ œ func sqrt(x float64) string { if x < 0 { return sqrt(-x) + "i" } return fmt.Sprint(math.Sqrt(x)) } [์ฐธ๊ณ  ์‚ฌ์ดํŠธ - a Tour of Go] 2021. 11. 1.
๋ฐ˜์‘ํ˜•