Go语言零基础入门:从0到能写程序(超详细版)

👨‍💻 关于作者:会编程的土豆

"不是因为看见希望才坚持,而是坚持了才看见希望。"

你好,我是会编程的土豆,一名热爱后端技术的Java学习者。

📚 正在更新中的专栏:

💕作者简介:后端学习者

这篇不是那种"扫一眼就会忘"的速成文,而是带你真正入门 Go(Golang)

假设你已经会 C / C++,我会用类比帮你快速理解。


一、Go语言是什么?

一句话:

复制代码
Go = 简洁 + 高并发 + 工程化强

为什么学 Go?

复制代码
✔ 语法简单(比 C++ 好学)
✔ 原生支持并发(goroutine)
✔ 大厂常用(后端、微服务)
✔ 编译快,部署方便

二、第一个 Go 程序

Go 复制代码
package main

import "fmt"

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

对比 C++

Go C++
package main
func main() int main()
fmt.Println cout

三、变量与基本类型


1. 定义变量

标准写法

复制代码
var a int = 10

简写(最常用)

复制代码
a := 10

类似 C++:

复制代码
int a = 10;

2. 常见类型

复制代码
int
float64
string
bool

示例

Go 复制代码
var a int = 10
var b float64 = 3.14
var s string = "hello"
var ok bool = true

四、输入输出


输出

复制代码
fmt.Println("hello")
fmt.Printf("%d\n", a)

输入

复制代码
var a int
fmt.Scan(&a)

注意:必须加 &(取地址)


五、条件语句


if

Go 复制代码
if a > 10 {
    fmt.Println("big")
} else {
    fmt.Println("small")
}

特点

复制代码
✔ 没有括号 ()
✔ 必须有 {}

六、循环


1. for(Go只有for)


类似 C++

复制代码
for i := 0; i < 5; i++ {
    fmt.Println(i)
}

while写法

复制代码
i := 0
for i < 5 {
    i++
}

无限循环

复制代码
for {
}

七、数组和切片(重点)


1. 数组

复制代码
var a [5]int

2. 切片(更常用)

复制代码
a := []int{1,2,3}

添加元素

复制代码
a = append(a, 4)

类比 C++

复制代码
slice ≈ vector

八、函数


定义函数

复制代码
func add(a int, b int) int {
    return a + b
}

简写

复制代码
func add(a, b int) int {
    return a + b
}

多返回值(Go特色)

复制代码
func div(a, b int) (int, int) {
    return a / b, a % b
}

九、指针(比C简单)


示例

复制代码
var a int = 10
var p *int = &a

fmt.Println(*p)

特点

复制代码
✔ 没有指针运算
✔ 更安全

十、结构体


复制代码
type Person struct {
    name string
    age  int
}

使用

复制代码
p := Person{"Tom", 20}
fmt.Println(p.name)

十一、Map(哈希表)


复制代码
m := make(map[string]int)

m["a"] = 1
m["b"] = 2

遍历

复制代码
for k, v := range m {
    fmt.Println(k, v)
}

十二、并发(Go最强的地方)


goroutine

复制代码
go func() {
    fmt.Println("hello")
}()

channel

Go 复制代码
ch := make(chan int)

go func() {
    ch <- 10
}()

x := <-ch
fmt.Println(x)

十三、完整小例子(数组求和)

Go 复制代码
package main

import "fmt"

func main() {
    nums := []int{1,2,3,4,5}
    sum := 0

    for _, v := range nums {
        sum += v
    }

    fmt.Println(sum)
}

十四、Go vs C++ 总结

对比 Go C++
语法 简洁 复杂
并发 原生支持 复杂
指针 简化 强大但危险
STL 很丰富

十五、学习路线建议

你现在是:

复制代码
✔ 会C/C++
✔ 正在学数据结构

建议路线

复制代码
1. 语法(这篇)
2. 切片 + map(重点)
3. 并发(goroutine)
4. 写项目(Web / 爬虫)

十六、一句话总结

复制代码
Go = 更简单的C + 自带并发 + 工程友好
相关推荐
傻啦嘿哟5 小时前
某招聘平台爬虫:爬取招聘岗位数据,分析各城市薪资水平
开发语言·爬虫·python
2501_933670795 小时前
2026秋招量化分析岗技能栈:Python、SQL、统计建模、回测项目怎么准备
开发语言·python·sql
李少兄6 小时前
JavaScript 数据类型完全指南
开发语言·javascript·ecmascript
码事漫谈6 小时前
多人共用一个 key,缓存命中率会不会因此降低?
后端
Seoyoneh6 小时前
Agentic Workflow编排架构:云客服从“被动响应”迈向“主动执行”的技术实现
java·开发语言·架构
Tangyuewei7 小时前
Java 写 Agent:模型只是组件
java·开发语言
考虑考虑7 小时前
docker compose环境变量替换
运维·后端·自动化运维
小玮看世界7 小时前
[Python]从合并区间到传感器融合区:合并区间在传感器区域融合的实际落地
开发语言·python
武雄(小星Ai)8 小时前
飞书API上传26MB文件偶发失败:错误码9499与空响应体排坑实录
后端·api·排坑实录
徐小夕8 小时前
JitWord 4.0 万字分享:从协同工具到AI Word操作系统,聊聊3年产品创业史
前端·vue.js·后端