ํด๋น๊ธ์ ์๋ ๋ด์ฉ์ ๋ฐํ์ผ๋ก ๊ณต๋ถํ ๋ด์ฉ๋ค์ ์ ๋ฆฌํ ๊ธ ์ ๋๋ค.
Go๋ฅผ ํฅํ ์ฌํ
go-tour-ko.appspot.com
Packages
package main
import (
"fmt"
"math/rand"
)
func main() {
fmt.Println("My favorite number is", rand.Intn(10))
}
๋ชจ๋ go ํ๋ก๊ทธ๋จ์ packge๋ก ๊ตฌ์ฑ์ด ๋์ด์๋ค.
ํ์ฌ ์ฝ๋์์๋ "fmt"์ "math/rand"๋ฅผ ๋ถ๋ฌ์จ ์ํ
rnad.Intn(10)์ ๊ฒฝ์ฐ ์คํ๋๋ ํ๊ฒฝ์ด ๋์ผํ๋ฏ๋ก ๊ฐ์ 1์ด๋ผ๋ ๊ฐ์ด ๋ฐํ๋๊ฒ ๋๋ค.
๋ค์ํ ์ซ์๋ฅผ ๋ด๋ณด๋ด๊ธฐ ์ํด์๋ ๋ณํํ๋ ์๋๊ฐ์ ์ฃผ๋ํ์์ผ๋ก ์ฝ๋๋ฅผ ์์ฑํ๋ฉด ๋๋ค. (time ๋ฑ)
Imports
package main
import (
"fmt"
"math"
)
func main() {
fmt.Printf("Now you have %g problems.\n", math.Sqrt(7))
}
math.Sqrt() : ํด๋น ์ซ์์ ์ ๊ณฑ๊ทผ์ ๋ฐํํ๋ค.
%g : ์ค์ํ์ ์ถ๋ ฅ
1.
import "fmt"
import "math"
2.
import (
"fmt"
"math"
)
import๋ฅผ ์ ์ธํ๋ ๋ฐฉ๋ฒ์ 1๋ฒ ๋ฐฉ๋ฒ๊ณผ 2๋ฒ ๋ฐฉ๋ฒ์ผ๋ก ํฌ๊ฒ 2๊ฐ์ง๊ฐ ์๋๋ฐ
2๋ฒ ๋ฐฉ๋ฒ ํ์์ผ๋ก ์ ์ธ์ ํ๋ ๊ฒ์ด ๋ ์ข์ ๋ฐฉ๋ฒ์ด๋ค.
Exported names
package main
import (
"fmt"
"math"
)
func main() {
fmt.Println(math.pi)
}
ํจํค์ง ๋ด๋ถ์ ์๋ ํจ์๋ฅผ ๋ถ๋ฌ์ค๊ฑฐ๋ ์ฝ๋์ ์์ฑ์๊ฐ ๋ค๋ฅธ ํ์ผ์์ ์ ์ธํ ํจ์๋ฅผ ๋ถ๋ฌ์ค๊ณ ์ถ์ ๊ฒฝ์ฐ์๋
ํด๋น ํจ์์ ์ฒซ๊ธ์๊ฐ ๋๋ฌธ์๋ก ๋์ด์์ด์ผ์ง๋ง ํด๋น ๋ด์ฉ์ ๋ถ๋ฌ์ฌ ์ ์๋ค.
package main
import (
"fmt"
"math"
)
func main() {
fmt.Println(math.Pi)
}
Functions
package main
import "fmt"
func add(x int, y int) int {
return x + y
}
func main() {
fmt.Println(add(42, 13))
}
ํจ์๋ฅผ ํตํด ์ธ์๋ฅผ ๋๊ฒจ์ฃผ๊ธฐ.
๋ค๋ฅธ ์ธ์ด๋ค๊ณผ๋ ๋ค๋ฅด๊ฒ ํจ์์ ๋ณ์๋ฅผ ๋๊ฒจ์ฃผ๋๊ฒฝ์ฐ ๋ณ์ ์ด๋ฆ ๋ค์ ํ์ ์ด ์ค๋ ํ์์ผ๋ก ์์ฑํด์ค์ผํ๋ค.
Functions continued
package main
import "fmt"
func add(x, y int) int {
return x + y
}
func main() {
fmt.Println(add(42, 13))
}
์ฃผ์ด์ง๋ ๋งค๊ฐ๋ณ์์ ํ์ ์ด ๊ฐ์๊ฒฝ์ฐ ๋งค๊ฐ๋ณ์์ ํ์ ์ ์๋ตํ์ฌ ์ ์ธํ ์ ์๋ค.
Multiple results
package main
import "fmt"
func swap(x, y string) (string, string) {
return y, x
}
func main() {
a, b := swap("hello", "world")
fmt.Println(a, b)
}
go์ ๊ฒฝ์ฐ์๋ ํ๋ฒ์ ์ฌ๋ฌ๊ฐ์ ๋ฐํ๊ฐ์ ๋ฃ์ ์ ์๋ค.
(string, string)์ ๋ฐํํ๊ฒ ๋ค๊ณ ์ ์ธํ์ฌ ํ๋ฒ์ 2๊ฐ์ ๊ฐ์ ๋ฐํํ ์ ์๋ค.
์ด๊ฒ๋๋ค..? ์ง์ง ํธํ๊ฒ ๋ค
Named return values
package main
import "fmt"
func split(sum int) (x, y int) {
x = sum * 4 / 9
y = sum - x
return
}
func main() {
fmt.Println(split(17))
}
(x, y int) ํ ํ์์ผ๋ก ๋ฏธ๋ฆฌ ๋ฆฌํด์ํฌ ๋ณ์๊ฐ ์ง์ ์ด ๋์ด์์ผ๋ฉด ๊ทธ๋ฅ return๋ง ํ์ฌ๋ ํด๋น๊ฐ์ ๋ฐํํ ์ ์๋ค.
์.. ์ด๊ฑด ์ง์ง ์ ๋ฐํ๋ค๋ผ๋ ์๊ฐ์ด ๋ค์๋ ๊ตฌ์กฐ
์์ง๊น์ง๋ ์ด์ฐ๋ณด๋ฉด ํธํ ๊ฑฐ๊ฐ๊ธฐ๋ํ๋ฐ ์ด์ฐ๋ณด๋ฉด ์ฝ๋๊ฐ ๊ผฌ์ผ ์๋ ์์๊ฑฐ๊ฐ์์ ์ ๋ชจ๋ฅด๊ฒ ๋ค.
Variables
package main
import "fmt"
var c, python, java bool
func main() {
var i int
fmt.Println(i, c, python, java)
}
๋ณ์๋ฅผ ์ ์ธํ๋ ๋ฐฉ๋ฒ
ํ์ ์ด๋ฆ ํ์
var : ํด๋น ๋ด์ฉ์ ๋ณ๊ฒฝํ ์ ์๋ ๊ฐ
Variables with initializers
package main
import (
"fmt"
"reflect"
)
var i, j int = 1, 2
func main() {
var c, python, java = true, false, "no!"
fmt.Println(i, j, c, python, java)
fmt.Println(reflect.TypeOf(i), reflect.TypeOf(j), reflect.TypeOf(c), reflect.TypeOf(python), reflect.TypeOf(java))
}
์ด๊ธฐ๊ฐ์ผ๋ก ์ณ๋ฐ๋ฅธ ๊ฐ์ ๋ฃ์ด์ฃผ๋ฉด type์ ์๋ตํ ์ ์๋ค.
์ค๊ฐ ํ๊ธฐ
ํ์ด์ฌ๊ณผ c์ ์ฅ์ ์ ์์ด๋ ๋ฏํ ์ธ์ด๋ผ๋ ์๊ฐ์ด ๋ค์๋ค.
์ฝ๋์ ์์ฑ๋ฐฉ๋ฒ์ ์๋นํ ๊น๋ํ๊ณ , ํ์ด์ฌ์ ์ฝ๋์์ฑ์ ๋ฐ๋ฅธ ํธ์์ฑ์ ๊ฐ์ ธ์ค๊ณ c์ ์์ ์ฑ๋ ๊ฐ์ ธ์จ ๋๋?
'programming language > Go' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Go] go-tour _ flowcontrol (0) | 2021.09.25 |
---|---|
[Go] go-tour _ basics [17/17] (1) | 2021.09.23 |
[Go] go-tour _ welcome (0) | 2021.09.21 |
[Go] hello world ์ถ๋ ฅ ํด์ํ๊ธฐ (0) | 2021.09.19 |
go ์ค์น (2) | 2021.09.19 |