Go 是一门开源编程语言,它在发明之初的目标是要创建一门具有高效执行速度、易于编写和维护的语言。它的语法简洁清晰,特别适合网络编程和分布式系统开发。
变量
在 Go 中,变量可以使用 var 关键字定义,并且可以分别赋予初值,也可以通过 := 运算符直接初始化声明变量。例如:
var name string
name = "Gopher"
or
name := "Gopher"
在声明变量的同时也可以声明多个变量:
var a, b, c int
a, b, c = 1, 2, 3
or
a, b, c := 1, 2, 3
除了上述变量声明方法,还有一种特殊的声明方式,使用 _(下划线)忽略某个变量:
_, b := 1, 2
常量
在 Go 中,常量可以使用 const 关键字定义。常量不能被修改,并且在声明时必须同时赋值。例如:
const pi = 3.1415926
or
const (
pi = 3.1415926
e = 2.71828
)
数据类型
Go 内置了基本的数据类型,包括 bool、string、int、float、complex 等。
bool 类型的变量只有两个值,true 或 false。example:
var flag bool = true
string 类型是不可变的字节序列,可以使用双引号或反引号定义字符串。example:
var str string = "Hello, world!"
integer 类型包括有符号的 int 和无符号的 uint,可以根据不同位数,例如 int8、int16、int32、int64 等。float 类型包括 float32 和 float64。complex 类型包括 complex64 和 complex128。
数组和切片
数组是一组固定长度且类型相同的元素集合,可以通过下标来访问元素。在 Go 中,使用 []T 表示数组类型,其中 T 是指数组中元素的类型。example:
var a [3]int = [3]int{1, 2, 3}
切片是一个具有动态大小,可以改变长度的序列。可以使用 make 函数创建一个切片。example:
var s []int = make([]int, 5)
可以通过 append 函数向切片追加元素:
s = append(s, 1)
流程控制
Go 语言的流程控制包括 if、for、switch 等。
if 语句用于根据条件执行某段代码:
if num > 0 {
fmt.Println("num is greater than zero")
} else {
fmt.Println("num is zero or less")
}
for 循环语句用于重复执行某段代码:
for i := 0; i < 10; i++ {
fmt.Println(i)
}
switch 语句用于根据不同条件执行不同的代码块:
switch num {
case 1:
fmt.Println("num is 1")
case 2:
fmt.Println("num is 2")
default:
fmt.Println("num is another number")
}
函数
函数是一段执行特定任务的代码,可以重复使用。在 Go 中,使用 func 关键字定义函数。例如:
func add(a, b int) int {
return a + b
}
指针
指针是一种变量,存储值的内存地址。在 Go 中,使用 & 符号获取变量的地址,使用 * 符号获取地址所存储的值。例如:
var a int = 10
var p *int = &a
fmt.Println(*p)
defer
defer 语句用于在函数执行结束时执行某