本篇内容介绍了“2021年Go语言的最新面试题有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
1、编译执行下面代码会出现什么?
packagemain var( size:=1024 max_size=size*2 ) funcmain(){ println(size,max_size) }
解析 考点:变量简短模式 变量简短模式限制: - 定义变量同时显式初始化 - 不能提供数据类型 - 只能在函数内部使用
结果:
syntaxerror:unexpected:=
2、下面函数有什么问题?
packagemain constcl=100 varbl=123 funcmain(){ println(&bl,bl) println(&cl,cl) }
解析 考点:常量 常量不同于变量的在运行期分配内存,常量通常会被编译器在预处理阶段直接展开,作为指令数据使用,
cannottaketheaddressofcl
3、编译执行下面代码会出现什么?
package main
func main() {
fori:=0;i<10;i++{ loop: println(i) } gotoloop
}
解析 考点:goto goto
不能跳转到其他函数或者内层代码
gotoloopjumpsintoblockstartingat
4、编译执行下面代码会出现什么?
packagemain import"fmt" funcmain(){ typeMyInt1int typeMyInt2=int variint=9 vari1MyInt1=i vari2MyInt2=i fmt.Println(i1,i2) }
解析 考点:Go 1.9 新特性 Type Alias 基于一个类型创建一个新类型,称之为defintion;基于一个类型创建一个别名,称之为alias。 MyInt1为称之为defintion,虽然底层类型为int类型,但是不能直接赋值,需要强转; MyInt2称之为alias,可以直接赋值。
结果:
cannotusei(typeint)astypeMyInt1inassignment
5、编译执行下面代码会出现什么?
packagemain import"fmt" typeUserstruct{ } typeMyUser1User typeMyUser2=User func(iMyUser1)m1(){ fmt.Println("MyUser1.m1") } func(iUser)m2(){ fmt.Println("User.m2") } funcmain(){ vari1MyUser1 vari2MyUser2 i1.m1() i2.m2() }
解析 考点:Go 1.9 新特性 Type Alias 因为MyUser2完全等价于User,所以具有其所有的方法,并且其中一个新增了方法,另外一个也会有。 但是
i1.m2()
是不能执行的,因为MyUser1没有定义该方法。 结果:
MyUser1.m1 User.m2
“2021年Go语言的最新面试题有哪些”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注恒创网站,小编将为大家输出更多高质量的实用文章!