Go 基础语法

Go(也叫Golang)是一种由Google开发的编程语言,以其简洁、高效和并发处理能力强而广受欢迎。以下是一些Go语言的基础语法:

1. 基本结构

Go程序由package、import和main函数组成。main函数是程序的入口。

package main
import "fmt"
func main() {
fmt.Println("Hello, World!")
}

2. 变量声明

Go中变量声明可以通过var关键字、:=简短声明语法来进行。

使用var声明变量:
var x int
x = 10
使用:=简短声明:
x := 10

3. 数据类型

Go有多种基本数据类型:

整数类型:int, int8, int16, int32, int64等。
浮动点类型:float32, float64
布尔类型:bool
字符串类型:string
var age int = 30
var name string = "Go"
var price float64 = 19.99

4. 常量

常量使用const声明:

const Pi = 3.14

5. 控制结构

Go的控制结构包括if、else、for、switch等。

if语句:
if x > 0 {
fmt.Println("Positive")
} else {
fmt.Println("Non-positive")
}
for循环:
for i := 0; i < 5; i++ {
fmt.Println(i)
}
switch语句:
switch day := 3; day {
case 1:
fmt.Println("Monday")
case 2:
fmt.Println("Tuesday")
default:
fmt.Println("Other day")
}

6. 函数

Go中函数的定义和调用很简单。函数定义如下:

func add(a int, b int) int {
return a + b
}
result := add(5, 3)
fmt.Println(result)

如果多个参数类型相同,可以省略后面的类型:

func add(a, b int) int {
return a + b
}

7. 数组和切片

数组: 数组长度是固定的,声明数组时需要指定长度。

var arr [3]int = [3]int{1, 2, 3}
切片: 切片是动态数组,可以随时扩展。
var slice []int = []int{1, 2, 3}
slice = append(slice, 4)
fmt.Println(slice)

8. 结构体

结构体是自定义数据类型,包含多个字段。

type Person struct {
Name string
Age int
}
var p Person
p.Name = "John"
p.Age = 30

9. 方法

Go中的方法是与特定类型绑定的函数。

type Circle struct {
Radius float64
}
func (c Circle) Area() float64 {
return 3.14 * c.Radius * c.Radius
}
var c Circle
c.Radius = 5
fmt.Println(c.Area())

10. 并发(goroutines和channels)

Go的并发通过goroutines和channels实现。goroutine是轻量级的线程,可以并发执行。

创建goroutine:

go func() {
fmt.Println("Hello from goroutine")
}()
channels:
ch := make(chan int)
go func() {
ch <- 42
}()
result := <-ch
fmt.Println(result)

11. 错误处理

Go不使用异常处理,而是通过返回错误值来处理异常情况。

func divide(a, b int) (int, error) {
if b == 0 {
return 0, fmt.Errorf("cannot divide by zero")
}
return a / b, nil
}
result, err := divide(10, 0)
if err != nil {
fmt.Println("Error:", err)
} else {
fmt.Println("Result:", result)
}

这些是Go的基础语法。如果你有更具体的需求或问题,随时可以问我!

posted @   泥鳅炖土豆  阅读(3)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
点击右上角即可分享
微信分享提示