Go语言的基础语法:
- 包声明:在Go语言中,每个文件都必须归属于一个包。通常在文件的顶部会声明包名。例如:
package main
- 导入包:Go语言中可以使用
import关键字来导入一个或者多个包。例如:import "fmt"或者多个包的情况import ("fmt" "math")
- 函数:函数通过
func关键字来定义。例如:
func sayHello() {
fmt.Println("Hello, world!")
}
- 变量:在Go语言中,变量可以使用
var关键字声明。例如:var x int = 10。Go也支持短声明变量,如:x := 10
- 常量:在Go语言中,常量可以使用
const关键字声明。例如:const Pi = 3.14159
- 控制结构:Go语言包含if、for、switch等常见的控制结构。例如:
// if语句
if x > 0 {
fmt.Println("x is positive")
}
// for循环
for i := 0; i < 10; i++ {
fmt.Println(i)
}
// switch语句
switch grade {
case "A":
fmt.Println("Excellent!")
case "B", "C":
fmt.Println("Good")
default:
fmt.Println("Invalid grade")
}
- 数组和切片:Go语言中的数组是具有固定长度且类型相同的元素的序列。切片则是数组的一种引用,其长度可以动态改变。例如:
// 声明一个数组
var numbers [10]int
// 声明并初始化一个切片
s := []int{1, 2, 3, 4, 5}
- 映射:映射是存储键值对的无序集合。例如:
// 声明并初始化一个映射
m := map[string]int{
"one": 1,
"two": 2,
"three": 3,
}
- 指针:Go语言中也支持指针,允许对内存地址的值进行操作。例如:
var x int = 10
var p *int
p = &x // p指向x
- 结构体:Go语言中可以定义自己的类型,包括结构体。例如:
type Person struct {
Name string
Age int
}
var p Person // 声明一个Person类型的变量p
- 接口:接口是一个或多个方法签名的集合。任何类型的值都满足一个接口只要这个类型定义了接口的所有方法。例如:
type Reader interface {
Read(b []byte) (n int, err error)
}
type Writer interface {
Write(b []byte) (n int, err error)
}