Go 使用小记

Posted xinxinmifan

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Go 使用小记相关的知识,希望对你有一定的参考价值。

1、不能使用在运行时计算的值实例化这样的数组。
而是使用make初始化具有所需长度的切片。

db := Connmysql()
rows, err := db.Query("select rules from u_check_list where status= ? and web_uri=? and server_ip=? order by rank ", 1, web, server)
helper.CheckErr(err)
columns, err := rows.Columns()
helper.CheckErr(err)
var rules = [len(columns)]string

Error Message: non-constant array bound len(columns)

这样写:
 columns, err := rows.Columns()
 helper.CheckErr(err)
 var ruleLength = len(columns)
 var rules = make([]string, ruleLength)

2、切片slice,一个可以动态改变大小的数组。
最大特点:长度可变;长度不同,两个切片就会不同

3、channel,初始化的时候如果设置了缓存容量,就要注意容量是否达到最大值,如果达到最大值又未被读取,此时再向channel里写数据是会失败的

4、变量名一定要注意不要跟关键字冲突;不要跟包名冲突,不然会导致包无法导入

5、并发与并行的区别:
并发: 单核cpu,可以做一系列的事,但是在某个时间点,做的只有一个任务,当任务阻塞时,cpu能立即唤醒其他任务顶上,让任务永远都在进行中。比如一个人手在玩手机,玩游戏玩烦躁了 改成看视频
并行:多核cpu,可以同时做一系列的事。再每一个时间点,如果存在多个任务,那么这些任务是同时在做着的。比如一个人下班后回到家,听着音乐的同时在看书

以上是关于Go 使用小记的主要内容,如果未能解决你的问题,请参考以下文章

GO语言map类型interface{}转换踩坑小记

jq,返回上一页,小记history.back(-1)和history.go(-1)区别

[Go] 通过 17 个简短代码片段,切底弄懂 channel 基础

解决go: go.mod file not found in current directory or any parent directory; see ‘go help modules‘(代码片段

你知道的Go切片扩容机制可能是错的

docker使用小记