第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
相关推荐
IT_陈寒几秒前
SpringBoot项目启动慢?5个技巧让你的应用秒级响应!
前端·人工智能·后端
树上有只程序猿34 分钟前
2026低代码选型指南,主流低代码开发平台排名出炉
前端·后端
高端章鱼哥1 小时前
为什么说用OpenClaw对打工人来说“不划算”
前端·后端
大脸怪1 小时前
告别 F12!前端开发者必备:一键管理 localStorage / Cookie / SessionStorage 神器
前端·后端·浏览器
用户8356290780511 小时前
使用 C# 在 Excel 中创建数据透视表
后端·python
架构师沉默1 小时前
别又牛逼了!AI 写 Java 代码真的行吗?
java·后端·架构
zone77392 小时前
006:RAG 入门-面试官问你,RAG 为什么要切块?
后端·算法·面试
狗头大军之江苏分军2 小时前
消耗 760万 Token 后,一文看懂了“小龙虾” OpenClaw 和 OpenCode 的区别
前端·后端
前端小张同学3 小时前
一次支付回调引发的「血案」:我是如何用 Redis + AOP 实现接口幂等的
后端
孟沐3 小时前
Java IO 流 - FileOutputStream & ObjectOutputStream 大白话解析
后端