Go 基础语法
Go(也叫 Golang)是一种静态类型、编译型语言,简洁且高效。以下是 Go 的一些基础语法:
1、包声明
每个 Go 程序都从 main 包开始,程序的入口点是 main 函数。
package main
2. 导入包
在 Go 中,你需要导入标准库或者第三方包来使用它们。
import "fmt"
3、声明变量
Go 语言中的变量可以通过 var 关键字声明,也可以使用短变量声明 :=。
var x int = 10
y := 20 // 自动推导类型
4、声明函数
函数用 func 关键字声明,main 函数是程序的入口。
func main() { fmt.Println("Hello, World!") }
5、常量
常量通过 const 关键字声明,值不能改变。
const PI = 3.14
6、数据类型
Go 支持多种基本数据类型,包括:
整数:int,int32,int64 等
浮动:float32,float64
布尔:bool
字符串:string
7、控制流
Go 支持常见的控制流结构,如 if,for,switch 等。
if 语句
if x > 10 { fmt.Println("x is greater than 10") } else { fmt.Println("x is 10 or less") }
for 循环
Go 只有 for 循环,其他的 while 或 do-while 需要用 for 实现。
for i := 0; i < 5; i++ { fmt.Println(i) }
switch 语句
switch day := "Monday"; day { case "Monday": fmt.Println("Start of the week") case "Friday": fmt.Println("Almost weekend") default: fmt.Println("Middle of the week") }
8、数组与切片
数组是固定大小的,而切片是动态可变大小的序列。
数组
var arr [5]int arr[0] = 10
切片
s := []int{1, 2, 3} s = append(s, 4) // 动态增加元素
9、结构体
结构体是 Go 中用于定义数据结构的一种方式。
type Person struct { Name string Age int }
10、接口
接口定义了对象的行为,不需要显式声明实现。
type Speaker interface { Speak() string } type Person struct { Name string } func (p Person) Speak() string { return "Hello, my name is " + p.Name }
11、并发
Go 提供了内建的支持并发的工具——goroutine(协程) 和 channel。
启动一个 goroutine,在函数或方法前加上go关键字即可
go func() { fmt.Println("This is a goroutine!") }()
使用 channel
ch := make(chan string) go func() { ch <- "Hello from goroutine" }() msg := <-ch fmt.Println(msg)