第1章:Go语言入门

第1章:Go语言入门

1. Go语言概述

1.1 语言历史

Go语言(Golang)是由Google公司于2007年开始开发,并于2009年正式开源的编程语言。其主要创始人包括:

  • Rob Pike(Unix和Plan 9操作系统的创始人之一)
  • Ken Thompson(Unix操作系统和C语言的联合发明人)
  • Robert Griesemer(V8 JavaScript引擎的设计者)

1.2 设计理念

Go语言的设计初衷是解决当时软件开发中的一些痛点:

  1. 简化复杂的软件开发过程
  2. 提高多核和网络系统编程的效率
  3. 保持语言的简单性和可读性
  4. 支持高效的并发编程

1.3 Go语言的优势

  1. 简单易学

    • 语法简洁,学习曲线平缓
    • 关键字少,语言规范小
  2. 高性能

    • 编译速度快
    • 执行效率接近C语言
    • 垃圾回收机制先进
  3. 并发编程

    • 原生支持并发(goroutine)
    • 轻量级线程模型
    • 通道(Channel)机制简化并发通信
  4. 强大的标准库

    • 丰富的内置包
    • 网络编程支持
    • 跨平台开发

1.4 应用场景

  1. 云计算和分布式系统

    • Kubernetes
    • Docker
    • Etcd
  2. 网络编程

    • 高性能Web服务器
    • 微服务架构
    • 网络爬虫
  3. 系统编程

    • 命令行工具
    • 后台服务
    • 性能监控工具
  4. 区块链和加密货币

    • Ethereum
    • Hyperledger项目

2. 开发环境搭建

2.1 Go SDK安装

Windows安装步骤
  1. 下载Go安装包
bash 复制代码
# 访问官方网站下载
https://golang.org/dl/
  1. 运行安装程序,选择安装路径(推荐:C:\Go)

  2. 配置环境变量

    • 添加 C:\Go\bin 到系统PATH
    • 设置 GOROOTC:\Go
    • 设置 GOPATH(项目工作空间)
  3. 验证安装

bash 复制代码
# 打开命令提示符
go version
go env

2.2 开发工具配置

VSCode配置
  1. 安装VSCode

  2. 安装Go扩展

    • 打开扩展市场
    • 搜索"Go"
    • 安装官方Go扩展
  3. 安装Go工具

bash 复制代码
# VSCode中打开终端,执行
go install golang.org/x/tools/gopls@latest
go install github.com/go-delve/delve/cmd/dlv@latest
go install github.com/stamblerre/gocode@latest
GoLand配置
  1. 下载并安装GoLand
  2. 配置Go SDK
    • 打开设置
    • 选择Go安装目录
    • 配置GOPATH

3. 第一个Go程序

3.1 Hello World示例

go 复制代码
// main.go
package main  // 声明包名

import "fmt"  // 导入fmt包用于打印

// main函数是程序入口
func main() {
    fmt.Println("Hello, Go语言!")
}

3.2 程序结构解析

  1. package main:声明程序的包名

    • main包是可执行程序的入口
    • 每个Go程序必须有一个main包
  2. import "fmt":导入标准库包

    • fmt用于格式化输入输出
    • 可以导入多个包
  3. func main():主函数

    • 程序执行的起点
    • 必须在main包中
    • 没有参数,没有返回值

3.3 编译和运行

方法1:直接运行
bash 复制代码
# 在程序目录下
go run main.go
方法2:编译可执行文件
bash 复制代码
# 编译
go build main.go

# 运行(Windows)
main.exe

# 运行(Linux/macOS)
./main

3.4 常见命令

bash 复制代码
# 格式化代码
go fmt main.go

# 检查代码
go vet main.go

# 安装依赖
go mod tidy
相关推荐
Seven974 分钟前
【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
java·后端·设计模式
不爱学习的小枫21 分钟前
scala的集合
开发语言·scala
梦醒沉醉22 分钟前
Scala的初步使用
开发语言·后端·scala
重庆穿山甲25 分钟前
建造者模式实战指南:场景案例+实战代码,新手也能快速上手
后端
小白学大数据27 分钟前
Fuel 爬虫:Scala 中的图片数据采集与分析
开发语言·爬虫·scala
贩卖纯净水.41 分钟前
《React 属性与状态江湖:从验证到表单受控的实战探险》
开发语言·前端·javascript·react.js
JouJz1 小时前
Java基础系列:深入解析反射机制与代理模式及避坑指南
java·开发语言·代理模式
小安同学iter1 小时前
Spring(七)AOP-代理模式
java·后端·spring
march of Time1 小时前
go注册rpc接口
qt·rpc·golang
Goboy1 小时前
老婆问我:“大模型的 Token 究竟是个啥?”
后端·程序员·架构