变量和常量
变量声明
在 Go 语言中,变量可以使用 var
关键字进行声明。变量声明时需要指定变量的类型和名称。
var a int // 声明一个整型变量a
也可以在声明的同时初始化:
var b int = 34 // 声明并初始化变量b
此外,Go 提供了简短变量声明的方式,这种声明方式无需指定类型,编译器会自动推断类型:
c := 56 // 简短声明变量c
变量作用域
变量的作用域决定了它们可以在程序的哪些部分被访问。在函数内部声明的变量仅在该函数内部可见,而在函数外部声明的变量在整个包内都是可见的。
-- -------------------- ---- ------- ------- ---- ------ ----- ---- ------ - --- - --- - -- -------------- -- ---- - ---- ----------------- - -------------- -- ------------ -
常量
常量是固定不变的值,在程序运行期间不会改变。使用 const
关键字声明常量。
const pi float64 = 3.14159265358979323846
Go 也支持无类型的常量,这些常量的类型由上下文决定。
const ( maxConnections = 100 minConnections = 1 )
数据类型
基本数据类型
Go 支持多种基本数据类型,包括整型、浮点型、布尔型等。
整型
Go 提供了不同大小的整型,例如:
int8
int16
int32
int64
uint8
uint16
uint32
uint64
还有平台相关的整型:
int
uint
示例:
var age int8 = 25
浮点型
Go 中的浮点型包括单精度浮点数 float32
和双精度浮点数 float64
。
var price float64 = 19.99
布尔型
布尔型只有两种值:true
和 false
。
var isAvailable bool = true
复合数据类型
Go 还提供了几种复合数据类型,如数组、切片、映射和结构体。
数组
数组是一个固定长度的元素序列,所有元素必须是相同类型。
var numbers [5]int // 声明一个包含5个整数的数组 numbers[0] = 1 numbers[1] = 2 // ...
切片
切片是对数组的一个动态视图,它使得数组的子集更容易处理。
var nums []int // 声明一个空的切片 nums = append(nums, 1) nums = append(nums, 2) // ...
映射
映射是一种无序的键值对集合,每个键都对应一个值。
ages := map[string]int{ "Alice": 30, "Bob": 25, }
结构体
结构体是一组字段的组合,可以包含不同类型的成员。
type Person struct { Name string Age int }
控制流
条件语句
条件语句用于基于不同的条件执行不同的代码块。
age := 20 if age < 18 { fmt.Println("未成年") } else if age >= 18 && age < 60 { fmt.Println("成年人") } else { fmt.Println("老年人") }
循环
循环用于重复执行某段代码直到满足特定条件。
for 循环
for i := 0; i < 5; i++ { fmt.Println(i) }
while 循环
Go 没有专门的 while
循环,但可以用 for
替代。
i := 0 for i < 5 { fmt.Println(i) i++ }
break 和 continue
break
用于立即退出循环,continue
跳过当前循环的剩余部分,并继续下一次迭代。
for i := 0; i < 10; i++ { if i%2 == 0 { continue } fmt.Println(i) }
函数
函数是组织代码的基本单元,可以接受参数并返回结果。
定义函数
定义一个简单的函数:
func add(a int, b int) int { return a + b }
多返回值
Go 允许函数返回多个值,这在需要同时返回数据和错误信息时特别有用。
func divide(a, b float64) (float64, error) { if b == 0 { return 0, errors.New("除数不能为零") } return a / b, nil }
匿名函数
匿名函数是在定义时没有名字的函数,通常作为参数传递给其他函数。
sum := func(a, b int) int { return a + b }(10, 20) fmt.Println(sum) // 输出30
以上就是 Go 语言的基础语法介绍。通过理解这些概念,你可以开始编写简单的 Go 程序了。