go新手常踩的坑
码农编程进阶笔记
共 3405字,需浏览 7分钟
·
2024-06-25 08:16
关注上面公众号回复“激活码”,获取最新永久激活码
作为一个5年的phper,这两年公司和个人都在顺应技术趋势,新项目慢慢从php转向了go语言,从2021年到现在,笔者手上也先后开发了两个go项目。在学习go语言的过程中也学习并总结了一些相关的东西,这篇文章就分享下自己踩过的一些坑吧。Golang 新手要注意的陷阱和常见错误(一)
1、函数的写法
func main()
{
fmt.Println("php是世界上最好的语言")
}
解决:
func main() {
fmt.Println("php是世界上最好的语言")
}
2、map定义和初始化
问题:
func main() {
var m map[string]string
m["php"] = "世界上最好的语言"
m["go"] = "世界上最好的语言"
fmt.Println(m)
}
解决:
func main() {
m := make(map[string]string, 2)
m["php"] = "世界上最好的语言"
m["go"] = "世界上最好的语言"
fmt.Println(m)
}
3、json格式转换
type Student struct {
id int
name string
score int
}
func main() {
s := Student{1, "小明", 99}
jsonS, _ := json.Marshal(s)
fmt.Println(string(jsonS))
}
解决:
type Student struct {
Id int
Name string
Score int
}
func main() {
s := Student{1, "小明", 99}
jsonS, _ := json.Marshal(s)
fmt.Println(string(jsonS))
}
4、循环中处理业务问题
func main() {
data := []int{1, 2, 3}
for _, value := range data {
value += 1
}
fmt.Println(data)
}
解决:
func main() {
data := []int{1, 2, 3}
for key := range data {
data[key] += 1
}
fmt.Println(data)
}
5、数组和切片的区别
func change(data [2]int) {
data[0] = 4
}
func main() {
data := [2]int{1, 2}
change(data)
fmt.Println(data)
}
解决:
func change(data []int) {
data[0] = 4
}
func main() {
data := []int{1, 2}
change(data)
fmt.Println(data)
}
6、:= 声明和初始化变量
func main() {
flag := 1
if true {
flag := 2
flag++
}
fmt.Println(flag)
}
解决:
func main() {
flag := 1
if true {
flag = 2
flag++
}
fmt.Println(flag)
}
总结:以上,就是本人在实际开发中,结合自己所学,遇到的一些比较常见的坑点了。当然,也是比较基础的一些点。后面,我也会继续深入学习go,总结更多的经验!
评论