Go documentation
The official Go site has the tour, package docs, and language spec.
The official Go site has the tour, package docs, and language spec.
mkdir my-go && cd my-go
go mod init example.com/my-go
cat > main.go <<'EOF'
package main
import "fmt"
func main() { fmt.Println("hello") }
EOF
go run .
cmd/ # main packages
internal/ # private packages
pkg/ # shared libraries (optional)
package main
import "fmt"
type User struct {
ID string
Email string
}
func main() {
u := User{ID: "1", Email: "a@b.com"}
fmt.Println(u.Email)
}
if err != nil {
return fmt.Errorf("open config: %w", err)
}
var a int = 1
b := "hi" // inferred
const pi = 3.14159
xs := []int{1, 2, 3}
m := map[string]int{"a": 1}
xs = append(xs, 4)
for i := 0; i < 3; i++ {
// ...
}
for i, x := range []string{"a", "b"} {
_ = i
_ = x
}
func div(a, b int) (int, error) {
if b == 0 {
return 0, fmt.Errorf("divide by zero")
}
return a / b, nil
}
type Counter struct{ N int }
func (c *Counter) Inc() { c.N++ }
type Stringer interface {
String() string
}
type User struct{ Email string }
func (u User) String() string { return u.Email }