go | 环境安装和快速入门

发布时间:2026/6/16 19:57:01

go | 环境安装和快速入门 环境搭建与第一个程序1. 安装与配置下载 SDK前往 Golang 官网或国内镜像下载对应系统的安装包。网站https://go.dev/dl/配置环境变量这是关键一步配置好后才能在任意目录使用go命令。GOROOTSDK 的安装路径例如D:\Program Files\Go。GOPATH你的工作目录存放项目代码的地方。PATH添加%GOROOT%\bin让系统能找到 Go 的可执行文件。2. 第一个 Go 程序在你的GOPATH下创建hello.go文件输入以下代码package main import fmt func main() { fmt.Println(Hello, Shenzhen!) }代码解析package main声明这是一个主包程序的入口。import fmt引入格式化输入输出包。func main()主函数程序从这里开始执行。fmt.Println()打印内容到控制台。编译运行打开终端Windows 下是 CMD 或 PowerShell进入文件所在目录执行go build hello.go编译生成可执行文件如hello.exe然后运行hello.exe。或者直接go run hello.go一键编译并运行。核心基础变量与数据类型Go 是强类型语言变量使用前必须先声明。1. 变量声明与赋值Go 推荐使用驼峰命名法。声明变量有多种方式// 方式1指定类型先声明后赋值 var age int age 18 // 方式2类型推导根据值自动判断类型 var name Alice // 方式3短变量声明仅限函数内部使用 address : Shenzhen2. 基本数据类型整数类型int8,int16,int32,int64。通常直接用int系统会自动匹配 32 位或 64 位。浮点类型float32,float64。Go 默认使用float64因为精度更高。字符类型Go 中没有专门的 char 类型通常用byte保存 ASCII或int保存 Unicode来存储。字符串类型Go 使用 UTF-8 编码完美支持中文。字符串一旦赋值不可变但可以进行拼接。布尔类型bool只有true和false两个值。3. 数据类型转换Go 不支持自动类型转换必须显式转换。var a int64 100 var b int32 20 // a b 会报错必须转换成同一类型 var sum a int64(b)流程控制让代码“动”起来程序的逻辑控制主要靠流程控制语句。1. 条件判断 (if-else)Go 的if语句条件不需要括号且支持在条件前执行一个简单语句。if score : 85; score 90 { fmt.Println(优秀) } else if score 60 { fmt.Println(及格) } else { fmt.Println(不及格) }2. 分支选择 (switch)Go 的switch非常灵活不需要写break默认自带。如果想继续执行下一个 case可以使用fallthrough。switch day : Monday; day { case Saturday, Sunday: // 可以合并多个值 fmt.Println(周末) case Monday: fmt.Println(工作日) default: fmt.Println(未知) }3. 循环 (for)Go 只有for一种循环关键字但它能实现所有循环功能。// 标准 for 循环 for i : 0; i 10; i { fmt.Println(i) } // while 循环的实现 j : 0 for j 5 { fmt.Println(j) j } // 无限循环 for { // do something break // 需要手动 break }函数与包管理当代码量变大时我们需要函数和包来组织代码。1. 函数定义Go 函数可以返回多个值这是非常实用的特性。// 函数定义计算和与差 func calc(n1, n2 int) (int, int) { sum : n1 n2 sub : n1 - n2 return sum, sub } // 调用函数 s, d : calc(10, 5) fmt.Println(和:, s, 差:, d)2. 包 (package)定义包每个文件开头都要写package 包名。导入包使用import 包路径。可见性首字母大写的变量或函数是公开的可被其他包访问首字母小写是私有的仅本包可用。复合数据类型数组、切片与 Map除了基本类型我们还需要处理复杂数据。1. 数组 (Array)长度固定定义时必须指定大小。var arr [3]int [3]int{1, 2, 3}2. 切片 (Slice)切片是数组的引用长度可变是 Go 中最常用的数据结构。// 方式1基于数组创建 arr : [5]int{1, 2, 3, 4, 5} slice : arr[1:3] // 引用 arr 的第1到第2个元素 // 方式2使用 make 创建 slice2 : make([]int, 3, 10) // 类型长度容量3. Map (键值对)类似其他语言的字典或哈希表。// 声明并初始化 heroes : map[string]string{ hero1: 宋江, hero2: 卢俊义, } // 增加/修改 heroes[hero3] 吴用 // 删除 delete(heroes, hero1) // 遍历 for key, value : range heroes { fmt.Println(key, value) }特色语法指针与结构体Go 语言保留了指针但比 C 语言更安全。1. 指针取地址。*取值解引用。var a int 10 var p *int a // p 存储了 a 的地址 fmt.Println(*p) // 输出 10取 p 指向的值2. 结构体 (struct)Go 语言没有类 (class)而是使用结构体来组合数据实现面向对象编程。// 定义一个 Person 结构体 type Person struct { Name string Age int } // 创建结构体实例 p1 : Person{Name: Bob, Age: 25} fmt.Println(p1.Name) // 输出 Bob

相关新闻