本文共 1355 字,大约阅读时间需要 4 分钟。
点击上方蓝色“Golang来啦”关注我哟
加个“星标”,天天 15 分钟,一起学 Go
新的一周,元气满满,加油!
一起来看下
1.下面代码编译能通过吗?
1func main() 2{ 3 fmt.Println("hello world")4}
参考答案及解析:编译错误。
1syntax error: unexpected semicolon or newline before {
Go 语言中,大括号不能放在单独的一行。
正确的代码如下:
1func main() {2 fmt.Println("works")3}
引自:http://devs.cloudimmunity.com/gotchas-and-common-mistakes-in-go-golang/
2.下面这段代码输出什么?
1var x = []int{2: 2, 3, 0: 1}23func main() {4 fmt.Println(x)5}
参考答案及解析:输出[1 0 2 3]
,字面量初始化切片时候,可以指定索引,没有指定索引的元素会在前一个索引基础之上加一,所以输出[1 0 2 3]
,而不是[1 3 2]
。
3.下面这段代码输出什么?
1func incr(p *int) int {2 *p++3 return *p4}5func main() {6 v := 17 incr(&v)8 fmt.Println(v)9}
参考答案及解析:2。知识点:指针。p 是指针变量,指向变量 v,*p++
操作的意思是取出变量 v 的值并执行加一操作,所以 v 的最终值是 2。
关于指针的使用可以参考文章《
解析若有不妥之处,欢迎在留言区交流、指正!
看下今天的题目:
1package main 2 3var gvar int 4 5func main() { 6 var one int 7 two := 2 8 var three int 9 three = 31011 func(unused string) {12 fmt.Println("Unused arg. No compile error")13 }("what?")14}
2.下面代码输出什么?
1type ConfigOne struct { 2 Daemon string 3} 4 5func (c *ConfigOne) String() string { 6 return fmt.Sprintf("print: %v", c) 7} 8 9func main() {10 c := &ConfigOne{}11 c.String()12}
3.下面代码输出什么?
答案以及解析会在下一篇文章中给出,鼓励大家在留言区留下答案,抱团学习,日拱一卒,每天进步一点!
ps:看完文章如果有收获,顺手花 1s 时间帮点下文末右下方的「在看」,感激!
所有学习上的成功,都只依靠两件事 -- 策略和坚持,而坚持本身就是最重要的策略!
推荐阅读:
如果我的文章对你有所帮助,点赞、转发都是一种支持!
转载地址:http://agynb.baihongyu.com/