
👨💻 关于作者:会编程的土豆
"不是因为看见希望才坚持,而是坚持了才看见希望。"
你好,我是会编程的土豆,一名热爱后端技术的Java学习者。
📚 正在更新中的专栏:
-
《数据结构与算法》😊😊😊
-
《leetcode hot 100》🥰🥰🥰🤩🤩🤩
-
《数据库mysql》
💕作者简介:后端学习者
这篇不是那种"扫一眼就会忘"的速成文,而是带你真正入门 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 + 自带并发 + 工程友好