Go 入门:从零开始编写你的第一个 Go 程序
Go 入门:从零开始编写你的第一个 Go 程序
Go 语言以其简洁、高效和易学著称,越来越受到开发者的青睐。本入门文档将带你从零开始,学习 Go 语言的基础知识,并编写你的第一个 Go 程序。
1. 安装 Go 语言
访问 https://golang.org/ 下载并安装适合你操作系统的 Go 语言开发环境。
2. 编写第一个 Go 程序
创建一个名为 hello.go
的文件,并写入以下代码:
```go package main
import "fmt"
func main() { fmt.Println("Hello, World!") } ```
解释:
package main
:声明该文件属于main
包,Go 程序的入口点必须在main
包中。import "fmt"
:导入fmt
包,它提供格式化输入/输出功能。func main() { ... }
:定义main
函数,程序执行的入口。fmt.Println("Hello, World!")
:使用fmt.Println
函数输出 "Hello, World!"。
3. 运行 Go 程序
打开终端或命令提示符,导航到 hello.go
文件所在的目录,执行以下命令:
bash
go run hello.go
你将在终端中看到输出:
Hello, World!
4. 变量和数据类型
- 声明变量: 使用
var
关键字和类型声明变量:
go
var name string = "Alice"
var age int = 30
-
数据类型: Go 提供多种数据类型,例如:
-
整数:
int
,int8
,int16
,int32
,int64
- 浮点数:
float32
,float64
- 字符串:
string
-
布尔:
bool
-
简短声明: 可以使用
:=
运算符简短声明变量:
go
message := "Hello, Go!"
5. 控制流
- if 语句:
go
if age >= 18 {
fmt.Println("成年人")
} else {
fmt.Println("未成年人")
}
- for 循环:
go
for i := 0; i < 5; i++ {
fmt.Println(i)
}
- switch 语句:
go
switch day {
case "Monday":
fmt.Println("开始新的一周")
case "Friday":
fmt.Println("周末快到了")
default:
fmt.Println("普通的一天")
}
6. 函数
- 定义函数: 使用
func
关键字和函数名定义函数:
go
func greet(name string) {
fmt.Println("你好,", name)
}
- 调用函数: 使用函数名和参数调用函数:
go
greet("Bob") // 输出 "你好,Bob"
7. 数组和切片
- 数组: 声明固定长度的数组:
go
var numbers [5]int
numbers[0] = 1
numbers[1] = 2
- 切片: 可变长度的数组,使用
[]
声明:
go
names := []string{"Alice", "Bob", "Charlie"}
8. 结构体
- 定义结构体: 使用
type
关键字和结构体名定义结构体:
go
type Person struct {
Name string
Age int
}
- 创建结构体: 使用结构体名和字面量创建结构体:
go
person := Person{"Alice", 30}
- 访问结构体成员: 使用
.
运算符访问结构体成员:
go
fmt.Println(person.Name) // 输出 "Alice"
9. 指针
- 声明指针: 使用
*
操作符声明指针变量,它存储变量的内存地址:
go
var num int = 10
var ptr *int = &num // ptr 指向 num
- 访问指针指向的值: 使用
*
操作符访问指针指向的值:
go
fmt.Println(*ptr) // 输出 10
10. 总结
本入门文档介绍了 Go 语言的基础知识,包括变量、数据类型、控制流、函数、数组、切片、结构体和指针。这只是一个开始,Go 语言还有更多功能和特性等待你探索。
11. Go 语言资源
- 官方网站: https://golang.org/
- 官方文档: https://golang.org/doc/
- Go 语言教程: https://tour.golang.org/
- Go 语言社区: https://go.dev/
祝你学习 Go 语言愉快!
- 本文标签: Go 入门
- 本文链接: https://blog.sandy1029.cloud/article/543
- 版权声明: 本文由nisan原创发布,转载请遵循《署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)》许可协议授权