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]stringm["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 intname stringscore int}func main() {s := Student{1, "小明", 99}jsonS, _ := json.Marshal(s)fmt.Println(string(jsonS))}
解决:
type Student struct {Id intName stringScore 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 := 1if true {flag := 2flag++}fmt.Println(flag)}
解决:
func main() {flag := 1if true {flag = 2flag++}fmt.Println(flag)}
总结:以上,就是本人在实际开发中,结合自己所学,遇到的一些比较常见的坑点了。当然,也是比较基础的一些点。后面,我也会继续深入学习go,总结更多的经验!
评论
