GO语言基础

102 阅读2分钟

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 语句用于在函数执行结束时执行某