01_Go语言基础与环境搭建

第1课:Go语言基础与环境搭建

课程目标

  • 了解Go语言的历史和特点
  • 搭建Go开发环境
  • 理解Go语言的基本语法结构
  • 编写第一个Go程序

1. Go语言简介

1.1 历史背景

  • 2007年由Google开发
  • 2009年正式发布
  • 设计目标:解决大型软件开发的复杂性

1.2 主要特点(与Java对比)

特性 Go Java
编译方式 编译型 编译+解释型
内存管理 自动GC 自动GC
并发模型 goroutine + channel Thread + Executor
类型系统 静态类型 静态类型
包管理 go modules Maven/Gradle

1.3 适用场景

  • 微服务架构
  • 云原生应用
  • 网络服务
  • 系统工具

2. 环境搭建

2.1 安装Go

bash 复制代码
# Windows
# 下载安装包:https://golang.org/dl/
# 或使用包管理器
winget install GoLang.Go

# 验证安装
go version

2.2 配置环境变量

bash 复制代码
# 设置GOPATH(Go 1.11+推荐使用go modules)
export GOPATH=$HOME/go
export PATH=$PATH:$GOPATH/bin

# 设置GOPROXY(国内用户)
go env -w GOPROXY=https://goproxy.cn,direct

2.3 IDE选择

  • VS Code + Go扩展(推荐)
  • GoLand(JetBrains出品,功能强大)
  • Vim/Emacs + Go插件

3. 第一个Go程序

3.1 Hello World

go 复制代码
package main

import "fmt"

func main() {
    fmt.Println("Hello, Go!")
}

3.2 程序结构解析

  • package main:声明主包
  • import "fmt":导入格式化包
  • func main():主函数(程序入口)

3.3 运行程序

bash 复制代码
# 直接运行
go run hello.go

# 编译后运行
go build hello.go
./hello.exe  # Windows
./hello      # Linux/Mac

4. Go语言基本语法

4.1 包管理

go 复制代码
// 单包导入
import "fmt"

// 多包导入
import (
    "fmt"
    "os"
)

// 别名导入
import f "fmt"
import _ "database/sql"  // 只执行init函数

4.2 变量声明

go 复制代码
// 显式类型声明
var name string = "Go"

// 类型推断
var age = 25

// 短变量声明(函数内)
func example() {
    count := 10
    fmt.Println(count)
}

// 批量声明
var (
    a int
    b string
    c bool
)

4.3 常量

go 复制代码
const (
    Pi = 3.14159
    Version = "1.0.0"
)

// iota(枚举)
const (
    Sunday = iota    // 0
    Monday           // 1
    Tuesday          // 2
)

5. 实践练习

5.1 练习1:变量和常量

go 复制代码
package main

import "fmt"

func main() {
    // 声明不同类型的变量
    var name string = "张三"
    var age int = 30
    var salary float64 = 15000.50
    
    // 使用短变量声明
    city := "北京"
    
    // 声明常量
    const company = "Go科技有限公司"
    
    // 输出信息
    fmt.Printf("姓名:%s\n", name)
    fmt.Printf("年龄:%d\n", age)
    fmt.Printf("薪资:%.2f\n", salary)
    fmt.Printf("城市:%s\n", city)
    fmt.Printf("公司:%s\n", company)
}

5.2 练习2:包导入练习

go 复制代码
package main

import (
    "fmt"
    "math"
    "time"
)

func main() {
    // 使用math包
    fmt.Printf("π的值:%.6f\n", math.Pi)
    fmt.Printf("2的平方根:%.6f\n", math.Sqrt(2))
    
    // 使用time包
    now := time.Now()
    fmt.Printf("当前时间:%s\n", now.Format("2006-01-02 15:04:05"))
}

6. 课后作业

  1. 环境搭建:完成Go环境安装和配置
  2. 第一个程序:编写并运行Hello World程序
  3. 变量练习:创建程序声明不同类型的变量和常量
  4. 包使用:尝试导入和使用不同的标准库包

7. 学习要点总结

  • Go语言是编译型语言,执行效率高
  • 包是Go语言的基本组织单位
  • 变量声明有多种方式,推荐使用短变量声明
  • 常量使用const关键字,支持批量声明
  • iota用于创建递增的常量序列

8. 下一课预告

下一课将学习Go语言的数据类型、控制结构和函数,这是Go语言编程的基础。


学习建议

  1. 多动手练习,不要只看代码
  2. 对比Java和Go的差异,加深理解
  3. 遇到问题及时查阅官方文档
  4. 保持代码的简洁性和可读性
相关推荐
疯狂的代M夫7 分钟前
C++对象的内存布局
开发语言·c++
得物技术11 分钟前
营销会场预览直通车实践|得物技术
后端·架构·测试
mit6.82432 分钟前
Linux下C#项目构建
开发语言·c#
群联云防护小杜37 分钟前
从一次 DDoS 的“死亡回放”看现代攻击链的进化
开发语言·python·linq
Ice__Cai41 分钟前
Flask 入门详解:从零开始构建 Web 应用
后端·python·flask·数据类型
霸敛42 分钟前
好家园房产中介网后台管理完整(python+flask+mysql)
开发语言·python·flask
武子康42 分钟前
大数据-74 Kafka 核心机制揭秘:副本同步、控制器选举与可靠性保障
大数据·后端·kafka
紫穹43 分钟前
006.LangChain Prompt Template
后端
whitepure1 小时前
万字详解JavaObject类方法
java·后端
切克呦1 小时前
通过 Cursor CLI 使用 GPT-5 的教程
前端·后端·程序员