Go 语言,也称为 Golang,是一个高性能且易于学习的编程语言,适合处理复杂的并发任务。
Hello, World
在开始我们的学习之前,让我们先从编写一个标准的 "Hello, World!" 程序开始:
package main
import (
"fmt"
)
func main() {
fmt.Println("Hello, World!")
}
变量和常量
在 Go 语言中,你可以使用 var
关键字来声明一个变量,使用 const
关键字来声明一个常量。Go 语言支持自动类型推断,你也可以显式声明变量的类型。
var a = "initial"
var b, c int = 1, 2
var d = true
var e float64
f := float32(e)
g := a + "foo"
const s string = "constant"
const h = 500000000
const i = 3e20 / h
控制结构
Go 语言的控制结构包括 if/else
,for
和 switch
等。值得注意的是,Go 语言的 if
语句不需要括号包围条件,且左大括号必须和 if/else
在同一行。此外,Go 语言没有 while
和 do while
循环,只有 for
循环。
if 7%2 == 0 {
fmt.Println("7 is even")
} else {
fmt.Println("7 is odd")
}
for i := 1; i <= 3; i++ {
fmt.Println(i)
}
switch a {
case 1:
fmt.Println("one")
case 2:
fmt.Println("two")
default:
fmt.Println("other")
}
数组和切片
数组是具有特定长度和类型的元素的集合,而切片是数组的一个引用,它是可以增长和缩小的。
var a [5]int
a[4] = 100
b := [5]int{1, 2, 3, 4, 5}
s := make([]string, 3)
s[0] = "a"
s[1] = "b"
s[2] = "c"
s = append(s, "d", "e", "f")
Map
Map 是一种键值对的无序集合,它是 Go 语言中的一种哈希表结构。
m := make(map[string]int)
m["one"] = 1
m["two"] = 2
函数
Go 语言中的函数可以有多个返回值。这是 Go 语言的一大特色,使得函数可以同时返回结果和错误信息等。
func add(a int, b int) int {
return a + b
}
func exists(m map[string]string, k string) (v string, ok bool) {
v, ok = m[k]
return v, ok
}
指针
Go 语言支持指针,允许在程序中通过引用直接访问和修改变量的值。
func add2ptr(n *int) {
*n += 2
}