Go语言入门
Go语言入门
Go语言 是一种由 Google 开发的开源编程语言,以其简洁、高效和并发性而闻名。它被广泛应用于系统编程、网络编程、云计算等领域。
1. 安装 Go
- 下载 Go: 从 https://golang.org/dl/ 网站下载适合你操作系统的 Go 安装包。
- 安装: 按照安装包指示进行安装。
- 验证: 打开终端,输入
go version
命令,查看 Go 版本信息。
2. Hello, World!
创建名为 main.go
的文件,输入以下代码:
```go package main
import "fmt"
func main() { fmt.Println("Hello, World!") } ```
- package main: 声明此文件是可执行程序。
- import "fmt": 导入
fmt
包,提供格式化输入输出功能。 - func main(): 定义程序的入口函数。
- fmt.Println("Hello, World!"): 使用
fmt.Println
打印字符串 "Hello, World!"。
在终端执行以下命令:
go run main.go
你将看到输出结果:
Hello, World!
3. 数据类型
Go 语言提供了丰富的基本数据类型:
- 整型:
int
,int8
,int16
,int32
,int64
,uint
,uint8
(byte),uint16
,uint32
,uint64
- 浮点型:
float32
,float64
- 布尔型:
bool
- 字符串:
string
示例:
go
var age int = 20
var name string = "John"
var isStudent bool = true
4. 变量
使用 var
关键字声明变量,并指定类型:
go
var name string
name = "John"
也可以使用简短声明方式:
go
name := "John"
5. 运算符
Go 语言支持常见的算术运算符、比较运算符、逻辑运算符等。
示例:
```go a := 10 b := 5
sum := a + b // 加法 diff := a - b // 减法 product := a * b // 乘法 quotient := a / b // 除法 remainder := a % b // 取余
isGreaterThan := a > b // 比较运算符 ```
6. 控制流
- if 语句:
go
if age >= 18 {
fmt.Println("成年了")
}
- for 循环:
go
for i := 0; i < 10; i++ {
fmt.Println(i)
}
- switch 语句:
go
switch day {
case "Monday":
fmt.Println("工作日")
case "Tuesday", "Wednesday", "Thursday", "Friday":
fmt.Println("工作日")
case "Saturday", "Sunday":
fmt.Println("周末")
default:
fmt.Println("未知日期")
}
7. 函数
使用 func
关键字定义函数:
go
func add(a int, b int) int {
return a + b
}
调用函数:
go
result := add(10, 5)
fmt.Println(result) // 输出 15
8. 包
Go 语言使用包来组织代码。
- 创建包: 在目录中创建一个
main.go
文件,并在开头添加package main
。 - 导入包: 使用
import
关键字导入其他包,例如import "fmt"
。 - 使用包中的函数: 使用
包名.函数名
方式调用包中的函数,例如fmt.Println()
。
9. 错误处理
Go 语言使用多返回值方式处理错误。
示例:
go
file, err := os.Open("file.txt")
if err != nil {
fmt.Println("打开文件失败:", err)
return
}
defer file.Close() // 延迟关闭文件
10. 并发编程
Go 语言提供了强大的并发编程特性,可以使用 goroutine
和 channel
实现并发执行。
- goroutine: 轻量级线程,可以使用
go
关键字启动。 - channel: 用于 goroutine 之间通信,使用
make
关键字创建。
示例:
```go func worker(id int, ch chan int) { for i := 0; i < 3; i++ { ch <- id * i // 向通道发送数据 } }
func main() { ch := make(chan int) go worker(1, ch) go worker(2, ch)
for i := 0; i < 6; i++ { value := <-ch // 从通道接收数据 fmt.Println("Received:", value) } } ```
11. 资源
希望这份入门文档能够帮助你快速了解 Go 语言!
- 本文标签: Go 入门
- 本文链接: https://blog.sandy1029.cloud/article/614
- 版权声明: 本文由nisan原创发布,转载请遵循《署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)》许可协议授权