Golang基础_12-基础小结

Golang基础_12-基础小结,第1张

概述目录 目录 注意事项 time的Format函数参数使用常量,不要使用字符串 在for range闭包里使用goroutine注意:要传参数进去 目录 @ 注意事项 package main表示当前脚本是程序入口,含有main函数 如果不是入口,只是单纯的一个包的话,就尽量与当前目录文件夹的名称保持一致,表示一个包的脚本 slice的append函数的真面目 slicez作为参数传递时是引用类型的

目录

目录 注意事项 time的Format函数参数使用常量,不要使用字符串 在for range闭包里使用goroutine注意:要传参数进去 目录

@

注意事项 package main表示当前脚本是程序入口,含有main函数

如果不是入口,只是单纯的一个包的话,就尽量与当前目录文件夹的名称保持一致,表示一个包的脚本

slice的append函数的真面目

slicez作为参数传递时是引用类型的,也就是把地址传进去了,要是做了一般的修改,就是真的修改了

package mainimport (    "fmt")func ppp(s []int) {    s = append(s,3)}func main(){    s := make([]int,0)    fmt.Println(s)    ppp(s)    fmt.Println(s)}

结果是:

[]    []

本来应该改变的,为什么没有变?
因为append函数实际上不是在后边加上一段空间,而是重新找了块内存,而原先s的没有动,ppp()里面如果返回了,就对了意思
所以使用slice会修改时,建议尽量使用返回值

time的Format函数参数使用常量,不要使用字符串
package mainimport (    "fmt"    "time")func main() {    t := time.Now()    fmt.Println(t.Format(time.ANSIC))    fmt.Println(t.Format("Mon Jan _2 15:04:05 2006"))}

建议使用第一行的输出方式,第二行不知道会出什么样的问题。。。balabala

在for range闭包里使用goroutine注意:要传参数进去
func main() {    s := []string{"a","b","c"}    for _,v := range s {        go func() {            fmt.Println(v)        }()    }    select {}}

上面的结果无法得到想要的结果

func main() {    s := []string{"a",v := range s {        go func(v string) {            fmt.Println(v)        }(v)    }    select {}}

这个代码可以分别输出a,b,c,但是每次顺序都不同,研究一下。。

总结

以上是内存溢出为你收集整理的Golang基础_12-基础小结全部内容,希望文章能够帮你解决Golang基础_12-基础小结所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1264942.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-08
下一篇 2022-06-08

发表评论

登录后才能评论

评论列表(0条)

保存