Go 语言基础语法学习笔记
变量与常量
Go 语言是强类型语言,在使用变量之前必须先声明变量类型,可使用 var
关键字来声明变量:
goCopy Codevar name string = "John"
也可以使用短变量声明方式:
goCopy Codeage := 20
常量使用 const
关键字声明:
goCopy Codeconst pi float64 = 3.14159
数据类型
Go 语言的数据类型分为基本数据类型和复合数据类型。
基本数据类型包括:bool
、int
、float
、string
、byte
、rune
等。
复合数据类型包括:数组、切片、结构体、指针、函数、接口、映射等。
流程控制
分支语句
Go 语言中的分支语句包括:if
、switch
。
if
语句:
goCopy Codeif grade >= 60 {
fmt.Println("及格")
} else {
fmt.Println("不及格")
}
switch
语句:
goCopy Codeswitch dayOfWeek {
case "Monday":
fmt.Println("星期一")
case "Tuesday":
fmt.Println("星期二")
default:
fmt.Println("未知")
}
循环语句
Go 语言中的循环语句包括:for
、range
。
for
循环:
goCopy Codesum := 0
for i := 1; i <= 100; i++ {
sum += i
}
fmt.Println(sum)
range
循环(用于遍历数组、切片、映射等):
goCopy Codenumbers := []int{1, 2, 3, 4, 5}
for _, num := range numbers {
fmt.Println(num)
}
函数
Go 语言中的函数使用 func
关键字声明。
goCopy Codefunc add(x, y int) int {
return x + y
}
可以通过多个返回值,实现一次返回多个结果:
goCopy Codefunc swap(x, y int) (int, int) {
return y, x
}
结构体
结构体是一种自定义数据类型,可以由不同的数据类型组合而成。
定义结构体类型:
goCopy Codetype person struct {
name string
age int
}
创建结构体实例:
goCopy Codep := person{name: "John", age: 20}
fmt.Println(p.name)
指针
指针是一种特殊的数据类型,它存储变量的内存地址。
goCopy Codea := 10
var ptr *int
ptr = &a // 将 a 的地址赋值给指针变量
fmt.Println(*ptr) // 输出 a 的值
包
Go 语言的包机制可以将多个文件组织在一起,形成一个工程。每个包都有一个唯一的包名。
导入包:
goCopy Codeimport (
"fmt"
"math/rand"
)
示例
以下是一个简单的程序,演示了如何使用 Go 语言实现计算斐波那契数列的功能:
goCopy Codepackage main
import "fmt"
func fibonacci(n int) int {
if n <= 1 {
return n
}
return fibonacci(n-1) + fibonacci(n-2)
}
func main() {
for i := 0; i < 10; i++ {
fmt.Println(fibonacci(i))
}
}