变量和常量
变量声明
在 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 提供了不同大小的整型,例如:
int8int16int32int64uint8uint16uint32uint64
还有平台相关的整型:
intuint
示例:
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 程序了。