目录
@
注意事项
-
package main
表示当前脚本是程序入口,含有main函数 -
如果不是入口,只是单纯的一个包的话,就尽量与当前目录文件夹的名称保持一致,表示一个包的脚本
slice的append函数的真面目
- @H_502_19@
package main import ( "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 main import ( "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 {} }