GO语言基础入门指南 上篇
一、安装 Go 语言环境
-
下载安装包
- 访问 Go 官方网站(golang.org/dl/),根据你的操作系统(如 Windows、Linux、MacOS)下载相应的安装包。
- 对于 Windows 用户,下载.msi 文件后,双击运行安装程序,按照提示完成安装。安装路径可以自定义,但通常默认路径是
C:\Go。 - MacOS 用户可以使用.pkg 安装包,安装过程类似,安装目录一般是
/usr/local/go。 - Linux 用户可以下载.tar.gz 压缩包,解压到合适的目录,如
/usr/local,然后设置环境变量。
-
配置环境变量
- 在 Windows 系统中,需要将 Go 的安装目录下的
bin文件夹路径添加到系统的PATH环境变量中。可以通过右键点击 “此电脑”,选择 “属性”,然后在 “高级系统设置” 中找到 “环境变量” 进行设置。 - 在 Linux 和 MacOS 系统中,在终端中编辑
~/.bashrc或~/.zshrc文件(根据你使用的 Shell),添加export PATH=$PATH:/usr/local/go/bin(假设 Go 安装在/usr/local/go),然后运行source ~/.bashrc或source ~/.zshrc使配置生效。
- 在 Windows 系统中,需要将 Go 的安装目录下的
二、Hello World 程序
-
创建代码文件
- 在你的本地磁盘上创建一个新的文件夹作为 Go 项目的工作空间,比如
my_go_projects。 - 在这个文件夹下创建一个名为
main.go的文件,文件名可以自定义,但如果是一个可执行程序,一般建议使用main.go。
- 在你的本地磁盘上创建一个新的文件夹作为 Go 项目的工作空间,比如
-
编写代码
-
使用文本编辑器(如 Visual Studio Code、Sublime Text 等)打开
main.go文件,输入以下代码:
-
package main
import "fmt"
func main() {
fmt.Println("Hello, World!")
}
-
代码解释:
-
package main:表示这是一个主包,Go 程序的入口点必须在main包中。 -
import "fmt":引入fmt包,fmt包提供了格式化输入输出的功能。 -
func main():这是程序的主函数,程序从这里开始执行。 -
fmt.Println("Hello, World!"):调用fmt包中的Println函数,在控制台打印出Hello, World!字符串。
-
-
运行程序
-
在终端中,切换到
main.go所在的目录,然后运行以下命令:- 在 Windows 系统中,如果已经正确配置了环境变量,可以在命令提示符(CMD)中输入
go run main.go。 - 在 Linux 和 MacOS 系统中,在终端中输入
go run main.go。
- 在 Windows 系统中,如果已经正确配置了环境变量,可以在命令提示符(CMD)中输入
-
三、基本语法
-
变量声明与赋值
-
变量声明:
- 使用
var关键字来声明变量。例如:var a int,这里声明了一个整数类型的变量a。 - 也可以同时声明多个变量,如
var b, c float64,声明了两个float64类型(双精度浮点数)的变量b和c。
- 使用
-
变量赋值:
- 变量声明后可以进行赋值,例如
a = 10。也可以在声明变量的同时赋值,如var d = 20,Go 语言会自动推断变量d的类型为int。 - 还有一种简洁的变量声明和赋值方式,称为短变量声明,使用
:=操作符。例如e := 30,但这种方式只能在函数内部使用。
- 变量声明后可以进行赋值,例如
-
-
数据类型
-
基本数据类型:
- 整数类型:包括
int(有符号整数,根据操作系统可能是 32 位或 64 位)、int8(8 位有符号整数)、int16(16 位有符号整数)、int32(32 位有符号整数)、int64(64 位有符号整数),还有对应的无符号整数类型uint、uint8等。 - 浮点数类型:
float32(单精度浮点数)和float64(双精度浮点数)。 - 布尔类型:
bool,只有true和false两个值。 - 字符类型:
rune(实际上是int32的别名),用于表示单个字符。 - 字符串类型:
string,例如str := "Hello"。
- 整数类型:包括
-
复合数据类型:
-
数组:具有固定长度的同类型元素的集合。例如
var arr [5]int声明了一个包含 5 个整数的数组。 -
切片:切片是对数组的引用,可以动态地增长和收缩。例如
slice := []int{1, 2, 3}创建了一个整数切片。 -
结构体:可以将不同类型的变量组合在一起。例如:
-
-
type Person struct {
Name string
Age int
}
p := Person{Name: "Alice", Age: 25}
- 映射(Map) :类似于其他语言中的字典,是无序的键值对集合。例如
m := map[string]int{"apple": 1, "banana": 2}。