golang至少点

golang至少点,第1张

概述1: go 大写字母开头的变量是可以导出的,即其他包可以读取的,是公有变量;小写字母开头的是不可以导出的,是私有变量, 函数的大写字母开头也是如此 2:[]int和[5]int这两种表达方式在Go语言里有根本性的区别。[]int不是数组,而是数组切片(slice),而[5]int是一个数组。在Go语言中,数组是值类型,而数组切片是引用类型。 值类型变量在函数调用时的参数传递中会被完整拷贝一次变量内

1: go 大写字母开头的变量是可以导出的,即其他包可以读取的,是公有变量;小写字母开头的是不可以导出的,是私有变量, 函数的大写字母开头也是如此

2:[]int和[5]int这两种表达方式在Go语言里有根本性的区别。[]int不是数组,而是数组切片(slice),而[5]int是一个数组。在Go语言中,数组是值类型,而数组切片是引用类型。

值类型变量在函数调用时的参数传递中会被完整拷贝一次变量内容,之后函数内 *** 作的只是这个拷贝的副本。这是第32页例子中所表现出来的,函数内对数组的修改不会影响函数外的原始数组内容的原因。一般而言,参数类型会选择数组切片而非数组,以避免拷贝所导致的性能损耗。

3》:go env 查看go的环境变量,godoc -http=:8080 建立本地官网

4》: golang 改变需要指针,否则是值传递

u:=new(User) u 是指针, var u User u是值 &u是引用

5》go中可以抛出一个panic的异常,然后在defer中通过recover捕获这个异常,然后正常处理

在一个主进程,多个go程处理逻辑的结构中,这个很重要,如果不用recover捕获panic异常,会导致整个进程出错中断

6》select:

golang 的 select 的功能和 select,poll,epoll 相似, 就是监听 IO *** 作,当 IO *** 作发生时,触发相应的动作

timeout := make (chan bool,1)

go func() {

time.Sleep(1e9) // sleep one second

timeout <- true

}()

ch := make (chan int)

select {

case <- ch:

case <- timeout:

fmt.Println("timeout!")

}

总结

以上是内存溢出为你收集整理的golang至少点全部内容,希望文章能够帮你解决golang至少点所遇到的程序开发问题。

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

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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存