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 使用小记的主要内容,如果未能解决你的问题,请参考以下文章
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‘(代码片段