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 + 自带并发 + 工程友好
相关推荐
weixin_4407305026 分钟前
函数return、参数、参数组、递归函数、高阶函数等小结
开发语言·python
苏supper36 分钟前
Spring Boot多环境配置与打包运行
spring boot·后端·spring
sugarzhangnotes1 小时前
【无标题】
开发语言·人工智能·python
geovindu1 小时前
rust: Composite Pattern
开发语言·后端·设计模式·rust·组合模式
SearchMan1 小时前
还有人不知道&和&&的区别?
后端
想用offer打牌1 小时前
Personal Agent爆火 - 它到底是个什么
人工智能·后端·ai编程
IT_陈寒1 小时前
Vue的v-if和v-for混用居然是个天坑
前端·人工智能·后端
周杰偷奶茶2 小时前
【Java】数组的定义和使用(附管理系统实战案例)
java·开发语言
橙子圆1233 小时前
JUC之集合类不安全
java·开发语言
阿里嘎多学长3 小时前
2026-09-29 GitHub 热点项目精选
开发语言·程序员·github·代码托管