Go语言面试题
创始人
2024-02-28 02:58:58
0

关于go vendor,下面说法正确的是()

A. 基本思路是将引用的外部包的源代码放在当前工程的vendor目录下面
B. 编译go代码会优先从vendor目录先寻找依赖包
C. 可以指定引用某个特定版本的外部包
D. 有了vendor目录后,打包当前的工程代码到其他机器的$GOPATH/src下都可以通过编译参考答案:ABD

1.使用了go-mod模式,项目可以放在gopath的src下吗?和gopath的区别?

使用go-mod以后,项目可以放在任何非中文路径下,gopath必须放在gopath的src下

2.go vendor的作用?

将依赖包下载到项目根目录下的vendor文件夹,这样在写代码的时候可以有提示

1.下面属于关键字的是

A.def B.Class C.func D.struct E.var答案:C、D、E

2.定义全局变量,正确的做法是?

A.var Name string B.Name := "hallen" C.var Name string = "hallen"
D.var Name = "hallen" E.var Name string := "hallen"答案:A、C、D

3.关于局部变量的初始化,下面正确的使用方式是?

A. var i int = 10
B. var i = 10
C. i := 10
D. i = 10参考答案:ABC

4.对于以下的代码,获取成员变量正确的做法是?

type Student struct {
Name string
}func main() {
var student *Student
student = new(Student)
*student = Student{Name:"hallen"}
}A.student.Name B.(*student).Name C.(&student.Name) D.*student.Name答案:A、B

5.字符串拼接正确的是?

A."hello"+"hallen" B."hello"+'h' C."hello'+"hallen"
D.fmt.Printf("%s%s","hello","hallen") E.fmt.Sprintf("%s%s","hello","hallen")答案:A、E

6.已申明的bool类型变量ok,关于其赋值,下面说法错误的是()

var ok bool
A. ok = true
B. ok = 1
C. ok = bool(1)
D. ok = (1 == 2)参考答案:BC

8.关于switch语句,下面说法正确的是()

A. 条件表达式必须为常量或者整数
B. 单个case中,可以出现多个结果选项
C. 需要用break来明确退出一个case
D. 只有在case中明确添加fallthrough关键字,才会继续执行紧跟的下一个case参考答案:BD

9.golang中的引用类型包括()

A. 数组
B. map
C. channel
D. interface
E.数组切片参考答案:BCDE

10.golang中的指针运算包括()

A. 可以对指针进行自增或自减运算
B. 可以通过“&”取指针的地址
C. 可以通过“*”取指针指向的数据
D. 可以对指针进行下标运算参考答案:BC

11.关于整型切片的初始化,下面正确的是()

A. s := make([]int)
B. s := make([]int, 0)
C. s := make([]int, 5, 10)
D. s := []int{1, 2, 3, 4, 5}
参考答案:BCD

12.ok是bool型变量,下面if表达式符合编码规范的是()

A. if ok == 1{}
B. if ok{}
C. if ok == false{}
D. if !ok{}
参考答案:BD

13.value是整型变量,下面if表达式符合编码规范的是()

A. if value == 0 {}
B. if value {}
C. if value != 0{}
D. if !value{}参考答案:AC

14.关于map,下面说法正确的是()

A. map反序列化时json.marshal的入参必须为map的地址
B. 在函数调用中传递map,则子函数中对map元素的增加不会导致父函数中map的修改
C. 在函数调用中传递map,则子函数中对map元素的修改不会导致父函数中map的修改
D. 不能使用内置函数delete删除map的元素参考答案:A

15.下面赋值正确的是()

A. var x = nil
B. var x interface{} = nil
C. var x string = nil
D. var x error = nil答案:BD,nil 只能赋值给指针

16.下面代码的结果为?

str := "hallen"
str[0] = 'z'
fmt.Println(str)A.hallen B.zallen c.compilation error答案:c,Go 语言中的字符串是只读的,不能进行修改

二、简答题
1.简述数组和切片的区别;程序中什么场景使用数组,什么场景使用切片?

类型区分:数组是值类型,切片是引用
可变性:数组长度不可变,切片长度可变,数组:已知的长度
切片:一般在参长度可变,未知的长度

2.Go语言局部变量分配在栈还是堆?

Go语言编译器会自动决定把一个变量放在栈还是放在堆,
当发现变量的作用域没有跑出函数范围,就可以在栈上,反之则必须分配在堆。

3.int和uint的区别?两个uint值能不能直接相减?

int是正数和负数都可以
uint不能是负数uint不能直接相减,如果结果是负数会变成一个很大的uint

4.提示:slice底层是数组,保存了len,capacity和对数组的引用

5.下面代码输出结果为?

func main() {
slice := make([]int, 3)
slice = append(slice , 9, 8, 7)
fmt.Println(slice )
}答案:[0 0 0 9 8 7]

6.下面代码的区别?那个为nil?

var slice1 []int
var slice2 = []int{} // var slice2 []int = []int{}答案:s1为nil切片,和nil相等,s2为空切片,和nil不相等

7.分别写出下面代码的执行结果

func Get() (int,int){
return 3,4
}func main() {
var a int
a,_ = Get() // 结果为a=3
a,_ := Get() // 报错,a已申明,不需要自动推导
a,b := Get() // a=3,b=4
a,b = Get() // 报错,b没有申明
fmt.Println(a)}

8.go语言中指针运算有哪些?

可以通过“&”取指针的地址可以通过“*”取指针指向的数据

9.说说各种类型的缺省值?

指针的缺省值是nil,其他的都是对应类型的零值,bool类型的缺省值是false

10.map如何顺序读取?

map不能顺序读取,是因为他是无序的,
想要有序读取,
首先的解决的问题就是,把key变为有序,所以可以把key放入切片,对切片进行排序,遍历切片,通过key取值。map_data1 := map[string]interface{}{
"name":"hallen",
"age":18,
}keys := []string{}
for k,_ := range map_data1 {
keys = append(keys,k)
}sort.Strings(keys)for _,v := range keys {
fmt.Println(map_data1[v])
}

11.字符串打印时,%v 和 %+v 的区别

“%+v”会以字段键值对的形式key-value格式打印,“%v”只会打印字段值value信息

相关内容

热门资讯

最高法发布6件涉未成年人家庭保... 转自:经济日报5月15日,最高人民法院发布6件涉未成年人家庭保护典型案例,进一步提高全社会对未成年人...
2024中国债务重组市场深度观... 4月17日晚间,某房地产企业发布公告,宣布总规模约95.5亿美元的境外债务重组获得重大进展,同时披露...
关税调整后对美出口订单波动 企... 转自:财联社【关税调整后对美出口订单波动 企业仍面临不确定性】财联社5月15日电,记者近期走访多家外...
富友支付十年“上市梦”:三冲港... 来源:@华夏时报微博华夏时报记者 赵奕 上海报道十年,上海富友支付服务股份有限公司(下称“富友支付”...
首届北京博物馆季将启 百项展览... 中新网北京5月15日电 (记者 徐婧)首届北京博物馆季将于5月18日启幕。活动携手北京各区和近300...
「AI新世代」AI终端竞争白热... 华夏时报(www.chinatimes.net.cn)记者 石飞月 北京报道在AI 2.0时代的军备...
美调查:受关税影响,美国人减少... 转自:海外网海外网5月15日电 标普全球市场财智公司发布的调查报告称,与一年前相比,3/10的美国人...
【云新发布】云南公安2024年... 云南网讯(记者 赵岗)2025年5月15日是第16个全国公安机关打击和防范经济犯罪宣传日。云南省公安...
新人可以选初恋地定情地结婚了 #婚姻登记加文旅新赛道火了#【#新人可以选初恋地定情地结婚了#】今年5月10日起,新修订的《婚姻登记...
京津优质中小学基础教育资源如何... 5月15日,教育部组织京津冀三地教育部门在雄安新区联合推出以“共建共享、协同发展”为主题的京津优质中...
支付宝扣了钱,我才发现「医保共... 晚上好呀,我是简七编辑部的冰冰。这两天,家里感冒的「接力赛」终于轮到我女儿了。去医院挂号、缴费,一切...
美股异动 | 网易(NTES.... 周四,网易(NTES.US)大涨逾11%,报119.52美元。网易公布2025年第一季度业绩,净收入...
MissPep胶原蛋白肽胶囊:...   为什么你的抗衰产品总是无效?  消费者常陷入困惑:明明坚持服用胶原蛋白,为何皱纹依旧、关节卡顿、...
举重亚锦赛落幕 中国队斩获31... 亚洲举重锦标赛15日在浙江江山落下帷幕,最后一个比赛日,李闫在女子87公斤以上级包揽3金,为中国举重...
新华网评:让文明新风浸润网络家... 原标题:新华网评:让文明新风浸润网络家园来源:新华网新华网北京5月15日电 题:让文明新风浸润网络家...
“婴儿高跟鞋”形似“三寸金莲”... 来源:中国新闻周刊近日,在社交平台上,有人晒出部分电商在售卖一款“婴儿高跟鞋”的商品,由于该鞋子形似...
在回看两人救人的7分钟行车记录... 新京报记者 赵敏 编辑 杨海 校对 李立军5月15日下午,山东烟台的网约车司机王涛把车停在路边,躺在...
佰维存储业绩会:高价值产品从第... 5月15日,佰维存储召开2024年度及2025年第一季度业绩说明会。从行业情况来看,虽然存储产业第一...
阳光电源:5月20日将召开20... 证券日报网讯 5月15日晚间,阳光电源发布公告称,公司2024年度及2025年第一季度业绩说明会定于...
端午节送老丈人,什么酒有面子又...   超市货架上清一色的“豪华包装+三位数标价”,结账时总有点心疼钱包。这两年白酒市场经历了比较大的变...