• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

牛客网_Go语言相关练习_选择题(1)

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

声明:题目源自牛客网。

一、单项选择题

解析:作为形参时,可以要求单向,只读或只写。

 

 解析:Go语言的内存回收机制规定,只要有一个指针指向引用一个变量,那么这个变量就不会被释放(内存逃逸),因此在Go语言中返回函数参数或临时变量是安全的。

Golang 垃圾回收剖析

Go 内存逃逸详细分析

 

 

解析:Go语言类型转换语法:Type(expression)。

D选项是类型断言,类型断言语法为:expression.(Type)
对于类型断言,首先 expression 必须是接口类型,但D选项中 i 是 int 类型,无法进行类型断言;其次 i 是 int 类型,无法通过类型断言转换成 MyInt,只有类型相符时,类型断言才会成功。

 

解析:zero为无类型浮点型常量

package main
 
import (   "reflect"     
        "fmt"
)
 
func main(){    
    a := 0.0     
    const zero = 0.0     
    fmt.Println(reflect.TypeOf(a),reflect.ValueOf(a).Kind())   //float64 float64  
    fmt.Println(reflect.TypeOf(zero),reflect.ValueOf(zero).Kind())  //float64 float64
 
}

 

 

二、不定项选择题

解析:区分好整型和布尔类型。

 

解析:全局变量要定义在函数之外,而在函数之外定义的变量只能用var定义。

 

解析:Go语言中切片、映射、通道、接口、函数是引用类型。

 

解析:单个case可以出现多个结果选项,比如 case 4,5,6

 

解析:cap的作用—— arry:返回数组的元素个数; slice:返回slice的最大容量 ;channel:返回channel的buffer容量。

package main
 
import (      
        "fmt"
)
 
func main(){    
    aa := []int{1,2,3}
    fmt.Println(cap(aa))  //3
    fmt.Println(len(aa))  //3
    bb := [2]int{1,2}  
    fmt.Println(cap(bb))  //2
    fmt.Println(len(bb))  //2
    cc := make(chan int,4)
    fmt.Println(cap(cc))  //4
    fmt.Println(len(cc))  //0
    dd := make(map[string]string,2) //map no cap 
    fmt.Println(len(dd))  //0
}

 

 

三、参考资料

Go笔记-结构体和接口_开源中国

Zero values

理解Go语言的nil

Go语言总结(5)——类型转换和类型断言

 

四、小结

初次体验做Go语言相关题目,可以看出有些问题还是掌握的不够全面,尤其是Go语言的接口类型,cap函数的作用等。

部门内有位大佬曾说过,多尝试犯错(不是故意犯错哈),不要惧怕错误,只有犯错,才能记得更深更牢固,所以,目前我就正出于Go语言疯狂犯错->修补->再犯错的循环中。

加油!

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
【转】go语言中int和byte转换方式发布时间:2022-07-10
下一篇:
Windows搭建Go语言环境·发布时间:2022-07-10
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap