Go 语言基础语法学习笔记

变量与常量

Go 语言是强类型语言,在使用变量之前必须先声明变量类型,可使用 var 关键字来声明变量:

goCopy Code
var name string = "John"

也可以使用短变量声明方式:

goCopy Code
age := 20

常量使用 const 关键字声明:

goCopy Code
const pi float64 = 3.14159

数据类型

Go 语言的数据类型分为基本数据类型和复合数据类型。

基本数据类型包括:boolintfloatstringbyterune等。

复合数据类型包括:数组、切片、结构体、指针、函数、接口、映射等。

流程控制

分支语句

Go 语言中的分支语句包括:ifswitch

if 语句:

goCopy Code
if grade >= 60 { fmt.Println("及格") } else { fmt.Println("不及格") }

switch 语句:

goCopy Code
switch dayOfWeek { case "Monday": fmt.Println("星期一") case "Tuesday": fmt.Println("星期二") default: fmt.Println("未知") }

循环语句

Go 语言中的循环语句包括:forrange

for 循环:

goCopy Code
sum := 0 for i := 1; i <= 100; i++ { sum += i } fmt.Println(sum)

range 循环(用于遍历数组、切片、映射等):

goCopy Code
numbers := []int{1, 2, 3, 4, 5} for _, num := range numbers { fmt.Println(num) }

函数

Go 语言中的函数使用 func 关键字声明。

goCopy Code
func add(x, y int) int { return x + y }

可以通过多个返回值,实现一次返回多个结果:

goCopy Code
func swap(x, y int) (int, int) { return y, x }

结构体

结构体是一种自定义数据类型,可以由不同的数据类型组合而成。

定义结构体类型:

goCopy Code
type person struct { name string age int }

创建结构体实例:

goCopy Code
p := person{name: "John", age: 20} fmt.Println(p.name)

指针

指针是一种特殊的数据类型,它存储变量的内存地址。

goCopy Code
a := 10 var ptr *int ptr = &a // 将 a 的地址赋值给指针变量 fmt.Println(*ptr) // 输出 a 的值

Go 语言的包机制可以将多个文件组织在一起,形成一个工程。每个包都有一个唯一的包名。

导入包:

goCopy Code
import ( "fmt" "math/rand" )

示例

以下是一个简单的程序,演示了如何使用 Go 语言实现计算斐波那契数列的功能:

goCopy Code
package 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)) } }