첫 프로그램

고 언어로 작성한 간단한 프로그램입니다.

package main

import "fmt"

func main() {
  message := greetMe("world")
  fmt.Println(message)
}

func greetMe(name string) string {
  return "Hello, " + name + "!"
}

다음 명령으로 프로그램을 실행합니다.

$ go run hello.go
변수

일반적인 선언:

var msg string
msg = "Hello"

짧은 선언:

msg := "Hello"
상수
const Phi = 1.618
문자열
str := "Hello"

여러 줄 문자열

str := `Multiline
string`
숫자

자주 사용하는 자료형

num := 3          // int
num := 3.         // float64
num := 3 + 4i     // complex128
num := byte('a')  // byte (alias for uint8)

그 밖의 자료형

var u uint = 7        // uint (unsigned)
var p float32 = 22.7  // 32-bit float
배열
// var numbers [5]int
numbers := [...]int{0, 0, 0, 0, 0}
포인터
func main () {
  b := *getPointer()
  fmt.Println("Value is", b)
func getPointer () (myPointer *int) {
  a := 234
  return &a
a := new(int)
*a = 234

포인터는 변수가 저장된 메모리 위치를 가리킵니다. 고 언어는 사용하지 않는 메모리를 자동으로 회수합니다.

자료형 변환
i := 2
f := float64(i)
u := uint(i)
슬라이스
slice := []int{2, 3, 4}
slice := []byte("Hello")
조건문
if day == "sunday" || day == "saturday" {
  rest()
} else if day == "monday" && isTired() {
  groan()
} else {
  work()
}
if _, err := doThing(); err != nil {
  fmt.Println("Uh oh")
분기문
switch day {
  case "sunday":
    // cases don't "fall through" by default!
    fallthrough

  case "saturday":
    rest()

  default:
    work()
}
반복문
for count := 0; count <= 10; count++ {
  fmt.Println("My counter is at", count)
}
entry := []string{"Jack","John","Jones"}
for i, val := range entry {
  fmt.Printf("At position %d, the character %s is present\n", i, val)
n := 0
x := 42
for n != x {
  n := guess()
}