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 + 自带并发 + 工程友好
相关推荐
itzixiao2 小时前
L1-058 6翻了(15分)[java][python]
java·开发语言·python·算法
小小码农Come on2 小时前
单例 QtObject 全局配置
开发语言·前端·javascript
hakesashou2 小时前
python如何保存img文件
开发语言·python
直奔標竿2 小时前
Java开发者AI转型第十三课!知识库终局方案:Spring AI Vector Store架构演进与ETL全链路入库实战
java·人工智能·后端·spring
MarkHD2 小时前
调度、监控与部署:Python自动化任务全栈实践
开发语言·python·自动化
山甫aa2 小时前
多叉树定义与遍历-----从零开始的数据结构
开发语言·c++·二叉树·多叉树
永远睡不够的入2 小时前
C++11新特性(2):深入 C++ 参数传递黑盒:从引用折叠到完美转发,再到可变参数模板
开发语言·c++
aLTttY2 小时前
Spring Boot 3.x 集成 AI 大模型实战指南
人工智能·spring boot·后端
无限进步_2 小时前
【C++】寻找数组中出现次数超过一半的数字:三种解法深度剖析
开发语言·c++·git·算法·leetcode·github·visual studio