牛客网_Go语言相关练习_选择题(1)
声明:题目源自牛客网。
一、单项选择题
解析:作为形参时,可以要求单向,只读或只写。
解析:Go语言的内存回收机制规定,只要有一个指针指向引用一个变量,那么这个变量就不会被释放(内存逃逸),因此在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语言相关题目,可以看出有些问题还是掌握的不够全面,尤其是Go语言的接口类型,cap函数的作用等。
部门内有位大佬曾说过,多尝试犯错(不是故意犯错哈),不要惧怕错误,只有犯错,才能记得更深更牢固,所以,目前我就正出于Go语言疯狂犯错->修补->再犯错的循环中。
加油!
版权声明:本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明。
特此声明:所有评论和私信都会在第一时间回复。也欢迎园子里和园子外的大大们指正错误,共同进步。或者直接私信我 (^∀^)
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是作者坚持原创和持续写作的最大动力!
您的资助是我最大的动力!
金额随意,欢迎来赏!
如果,您希望更容易地发现我的新博客,不妨点击一下绿色通道的
本博客的所有打赏均将用于博主女朋友的化妆品购买以及养肥计划O(∩_∩)O。我是【~不会飞的章鱼~】!