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 + 自带并发 + 工程友好
相关推荐
就叫_这个吧3 小时前
Java递归方法实现面包屑导航
java·开发语言
fīɡЙtīиɡ ℡3 小时前
AI 应用系统设计
java·开发语言·人工智能
AI绘画哇哒哒4 小时前
【建议收藏!】35岁后端血泪忠告,这3类人别硬转Agent(过来人亲述)
java·人工智能·后端·ai·程序员·大模型·agent
聪明蛋子哟4 小时前
Stagehand v3多语言SDK:Python/Go/Rust/Java下的浏览器自动化统一方案
python·golang·rust
唐青枫5 小时前
一个值多种形态:Zig union、Tagged Union 与内存布局实战
后端
今天AI了吗5 小时前
Python 基础语法(一):常量、变量、输入输出与运算符
开发语言·数据库·人工智能·python·sql·深度学习·机器学习
卷无止境5 小时前
Windows 上丝滑开发 Python,并稳定构建 Docker 镜像
后端·python·docker
Nturmoils5 小时前
备份完不算完,先还原到临时库验一遍
后端
TELL5215 小时前
selenium webdriver 第二次初始化的异常
开发语言·python
Csvn6 小时前
📊 SQL 入门 Day 22:视图与物化视图
后端·sql