๋ฐ์ํ Data Base/Go28 [์ฝ๊ณ ๋น ๋ฅธ 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. [Golang] C์ while = Go์ for ; ์ ์๋ตํ ์ ์๋ค๋ ์ ์์ C์ while ์ Go์์ for ๋ก ์ฐ์ธ๋ค. ์์ package main import "fmt" func main() { sum := 1 for sum < 1000 { sum += sum } fmt.Println(sum) } [์ฐธ๊ณ ์ฌ์ดํธ - a Tour of Go] 2021. 11. 1. ์ด์ 1 2 3 4 5 ๋ค์ ๋ฐ์ํ