博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Go 面试每天一篇(第 59 天)
阅读量:2288 次
发布时间:2019-05-09

本文共 1200 字,大约阅读时间需要 4 分钟。

点击上方蓝色“Golang来啦”关注我哟

加个“星标”,天天 15 分钟,一起学 Go

1.下面的代码输出什么?

1type T struct { 2    x int 3    y *int 4} 5 6func main() { 7 8    i := 20 9    t := T{10,&i}1011    p := &t.x1213    *p++14    *p--1516    t.y = p1718    fmt.Println(*t.y)19}

参考答案及解析:10。知识点:运算符优先级。如下规则:递增运算符 ++ 和递减运算符 -- 的优先级低于解引用运算符 * 和取址运算符 &,解引用运算符和取址运算符的优先级低于选择器 . 中的属性选择操作符。

2.下面哪一行代码会 panic,请说明原因?

1package main23func main() {4    x := make([]int, 2, 10)5    _ = x[6:10]6    _ = x[6:]7    _ = x[2:]8}

参考答案:第 6 行,截取符号 [i:j],如果 j 省略,默认是原切片或者数组的长度,x 的长度是 2,小于起始下标 6 ,所以 panic。

两题均引自:《Go语言101》

解析若有不妥之处,欢迎在留言区交流、指正!

看下今天的题目:

1type N int 2 3func (n *N) test(){ 4    fmt.Println(*n) 5} 6 7func main()  { 8    var n N = 10 9    p := &n1011    n++12    f1 := n.test1314    n++15    f2 := p.test1617    n++18    fmt.Println(n)1920    f1()21    f2()22}

引自:《Go语言学习笔记》· 方法

2.下面哪一行代码会 panic,请说明原因?

1package main 2 3func main() { 4  var m map[int]bool // nil 5  _ = m[123] 6  var p *[5]string // nil 7  for range p { 8    _ = len(p) 9  }10  var s []int // nil11  _ = s[:]12  s, s[0] = []int{1, 2}, 913}

引自:《Go语言101》

答案以及解析会在下一篇文章中给出,鼓励大家在留言区留下答案,抱团学习,日拱一卒,每天进步一点!

ps:看完文章如果有收获,顺手花 1s 时间帮点下文末右下方的「在看」,感激!

所有学习上的成功,都只依靠两件事 -- 策略和坚持,而坚持本身就是最重要的策略!

推荐阅读:

转载地址:http://hwfnb.baihongyu.com/

你可能感兴趣的文章
YUM源安装MySQL5.7
查看>>
Tomcat日志切割cronolog
查看>>
glibc-2.14安装
查看>>
升级openssl zlib版本 安装nginx
查看>>
ab压力测试
查看>>
SVN指定端口启动
查看>>
网站访问速度一般检查参数
查看>>
编译安装过程
查看>>
HTTP常见返回码信息
查看>>
WEB集群session处理方案
查看>>
JDK命令行(jps、jstat、jinfo、jmap、jhat、jstack、jstatd、hprof)与JConsole
查看>>
JAVA 对象访问: 句柄和指针
查看>>
秒杀系统优化思路
查看>>
dubbo 报错:java.lang.NoClassDefFoundError: org/I0Itec/zkclient/exception/ZkNoNodeException
查看>>
logback的使用和logback.xml详解
查看>>
Linux 快捷键
查看>>
JPA 联合主键配置
查看>>
ObjectAlreadyExistsException:Unable to store Job : '*', because one already exists with thi s ident
查看>>
mybatis & JPA 实体类型属性转换
查看>>
Git 中的 ~ 和 ^
查看>>