当前位置: 首页 > news >正文

绿植租摆网站建设大连专业网站设计服务商

绿植租摆网站建设,大连专业网站设计服务商,设计公司logo设计,天津住建网官网1.recover的执行时机 无#xff0c;recover 必须在 defer 函数中运行。recover 捕获的是祖父级调用时的异常#xff0c;直接调用时无效。 func main() {recover()panic(1) }直接 defer 调用也是无效。 func main() {defer recover()panic(1) }defer 调用时多层嵌套依然无效…1.recover的执行时机 无recover 必须在 defer 函数中运行。recover 捕获的是祖父级调用时的异常直接调用时无效。 func main() {recover()panic(1) }直接 defer 调用也是无效。 func main() {defer recover()panic(1) }defer 调用时多层嵌套依然无效。 func main() {defer func() {func() { recover() }()}()panic(1) }必须在 defer 函数中直接调用才有效。 func main() {defer func() {recover()}()panic(1) }2.闭包错误引用同一个变量问题怎么处理 在每轮迭代中生成一个局在这里插入代码片部变量 i 。如果没有 i : i 这行将会打印同一个变量。 func main() {for i : 0; i 5; i {i : idefer func() {println(i)}()} }或者是通过函数参数传入 i 。 func main() {for i : 0; i 5; i {defer func(i int) {println(i)}(i)} }3.在循环内部执行defer语句会发生啥 defer 在函数退出时才能执行在 for 执行 defer 会导致资源延迟释放。 func main() {for i : 0; i 5; i {func() {f, err : os.Open(/path/to/file)if err ! nil {log.Fatal(err)}defer f.Close()}()} }func 是一个局部函数在局部函数里面执行 defer 将不会有问题。 4.说出一个避免Goroutine泄露的措施 可以通过 context 包来避免内存泄漏。 func main() {ctx, cancel : context.WithCancel(context.Background())ch : func(ctx context.Context) -chan int {ch : make(chan int)go func() {for i : 0; ; i {select {case - ctx.Done():returncase ch - i:}}} ()return ch}(ctx)for v : range ch {fmt.Println(v)if v 5 {cancel()break}} } 下面的 for 循环停止取数据时就用 cancel 函数让另一个协程停止写数据。如果下面 for 已停止读取数据上面 for 循环还在写入就会造成内存泄漏。 5.如何跳出for select 循环 通常在for循环中使用break可以跳出循环但是注意在go语言中for select配合时break 并不能跳出循环。 func testSelectFor2(chExit chan bool){EXIT:for {select {case v, ok : -chExit:if !ok {fmt.Println(close channel 2, v)break EXIT//goto EXIT2}fmt.Println(ch2 val , v)}}//EXIT2:fmt.Println(exit testSelectFor2) }6.如何在切片中查找 go中使用 sort.searchXXX 方法在排序好的切片中查找指定的方法但是其返回是对应的查找元素不存在时待插入的位置下标(元素插入在返回下标前)。 可以通过封装如下函数达到目的。 func IsExist(s []string, t string) (int, bool) {iIndex : sort.SearchStrings(s, t)bExist : iIndex!len(s) s[iIndex]treturn iIndex, bExist } 7.如何初始化带嵌套结构的结构体 go 的哲学是组合优于继承使用 struct 嵌套即可完成组合内嵌的结构体属性就像外层结构的属性即可可以直接调用。 注意初始化外层结构体时必须指定内嵌结构体名称的结构体初始化如下看到 s1方式报错s2 方式正确。 type stPeople struct {Gender boolName string }type stStudent struct {stPeopleClass int }//尝试4 嵌套结构的初始化表达式 //var s1 stStudent{false, JimWen, 3} var s2 stStudent{stPeople{false, JimWen}, 3} fmt.Println(s2.Gender, s2.Name, s2.Class)8.切片和数组的区别 数组是具有固定长度且拥有零个或者多个相同数据类型元素的序列。数组的长度是数组类型的一部分所以[3]int 和 [4]int 是两种不同的数组类型。数组需要指定大小不指定也会根据初始化的自动推算出大小不可改变数组是值传递。数组是内置类型是一组同类型数据的集合它是值类型通过从0开始的下标索引访问元素值。在初始化后长度是固定的无法修改其长度。 当作为方法的参数传入时将复制一份数组而不是引用同一指针。数组的长度也是其类型的一部分通过内置函数len(array)获取其长度。数组定义 var array [10]intvar array [5]int{1,2,3,4,5}切片表示一个拥有相同类型元素的可变长度的序列。切片是一种轻量级的数据结构它有三个属性指针、长度和容量。切片不需要指定大小切片是地址传递切片可以通过数组来初始化也可以通过内置函数make()初始化 。初始化时lencap,在追加元素时如果容量cap不足时将按len的2倍扩容。切片定义 var slice []type make([]type, len)9.new和make的区别 new 的作用是初始化一个指向类型的指针 (*T) 。new 函数是内建函数函数定义func new(Type) Type。使用 new 函数来分配空间。传递给 new 函数的是一个类型不是一个值。返回值是指向这个新分配的零值的指针。 make 的作用是为 slicemap 或 chan 初始化并返回引用 (T)。make 函数是内建函数函数定义func make(Type, size IntegerType) Type第一个参数是一个类型第二个参数是长度返回值是一个类型。 make(T, args) 函数的目的与 new(T) 不同。它仅仅用于创建 Slice, Map 和 Channel并且返回类型是 T不是T的一个初始化的不是零值的实例。 10.Printf()、Sprintf()、Fprintf()函数的区别用法是什么 都是把格式好的字符串输出只是输出的目标不一样。 Printf()是把格式字符串输出到标准输出一般是屏幕可以重定向。Printf() 是和标准输出文件 (stdout) 关联的Fprintf 则没有这个限制。 Sprintf()是把格式字符串输出到指定字符串中所以参数比printf多一个char*。那就是目标字符串地址。 Fprintf()是把格式字符串输出到指定文件设备中所以参数比 printf 多一个文件指针 FILE*。主要用于文件操作。Fprintf() 是格式化输出到一个stream通常是到文件。
http://www.sadfv.cn/news/364817/

相关文章:

  • 网站如何paypal支付郑州小程序开发公司
  • 宁波网站推广营销更改菜单排序wordpress
  • 大形电商网站开发费用seo工具包
  • 智能网站建设模板售后英文网站建设用哪种字体
  • 有什么网站可以免费搭建网址成都广告制作厂家
  • 乐山智顶网站建设怎么给一个花店做网站建设
  • 网站建设专业特长wordpress 下载附件
  • 网站建设业务员前景购物网站后台设计
  • 网站模板内容页wordpress 加入代码
  • 做印刷网站公司简介如何做跨境电商需要哪些条件
  • 百变模板手机网站建设外贸商城源码
  • 做网站对服务器什么要求高新媒体运营基础知识
  • 网站查询ip地址专门做网站
  • 成都网站推广经理phpwind和wordpress
  • 广州网站建设seo用织梦做的网站怎么管理系统
  • 关于医院网站建设的通知爱战网官网
  • 免费的网站有哪些蓝色网站源码
  • 在线购物的网站制作关键词收录查询工具
  • 智慧团建电脑版登录入口seo网站规划
  • 网络app制作网站有哪些内容wordpress移除注册登录界面图标
  • 网站建设个人网上银行wordpress 底部样式
  • 做音乐网站怎么放音乐电子商务网站建设组织流程图
  • 中国建设规划采购网站网站制作公司费用
  • html5 开发网站公司怎么注册网站免费
  • 怎样在网站上做友情链接网络营销以什么为中心
  • 网站关键词如何做网址大全2021
  • 大气网站设计怎么制作公众号微信
  • 类似猪八戒的网站建设做数据分析好看的网站
  • 帝国和织梦哪个做网站好pascal建设网站
  • DW怎么做电商网站百度竞价在哪里开户