ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Go 面试每天一篇(第 37 天)

2021-07-01 15:02:19  阅读:173  来源: 互联网

标签:string int chan make 37 value 面试 func Go


 

你好哇,欢迎来答题!一起来看下昨天题目的解析:

1.关于函数声明,下面语法正确的是?

  • A. func f(a, b int) (value int, err error)

  • B. func f(a int, b int) (value int, err error)

  • C. func f(a, b int) (value int, error)

  • D. func f(a int, b int) (int, int, error)

参考答案及解析:ABD。参考文章《函数》

2.关于整型切片的初始化,下面正确的是?

  • A. s := make([]int)

  • B. s := make([]int, 0)

  • C. s := make([]int, 5, 10)

  • D. s := []int{1, 2, 3, 4, 5}

参考答案及解析:BCD。参考文章《非懂不可的Slice(一)》

3.下面代码会触发异常吗?请说明。

func main() {
    runtime.GOMAXPROCS(1)
    int_chan := make(chan int, 1)
    string_chan := make(chan string, 1)
    int_chan <- 1
    string_chan <- "hello"
    select {
    case value := <-int_chan:
        fmt.Println(value)
    case value := <-string_chan:
        panic(value)
    }
}

参考答案及解析:select 会随机选择一个可用通道做收发操作,所以可能触发异常,也可能不会。具体详看《Go 并发 -- Select》

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

看下今天的题目:
1.关于channel的特性,下面说法正确的是?

  • A. 给一个 nil channel 发送数据,造成永远阻塞

  • B. 从一个 nil channel 接收数据,造成永远阻塞

  • C. 给一个已经关闭的 channel 发送数据,引起 panic

  • D. 从一个已经关闭的 channel 接收数据,如果缓冲区中为空,则返回一个零值

2.下面代码有什么问题?

const i = 100
var j = 123

func main() {
    fmt.Println(&j, j)
    fmt.Println(&i, i)
}

3.下面代码能否编译通过?如果通过,输出什么?

func GetValue(m map[int]string, id int) (string, bool) {

    if _, exist := m[id]; exist {
        return "exist", true
    }
    return nil, false
}
func main() {
    intmap := map[int]string{
        1: "a",
        2: "b",
        3: "c",
    }

    v, err := GetValue(intmap, 3)
    fmt.Println(v, err)
}

 

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

 

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

 

推荐阅读:

非懂不可的Slice(二)

可变函数

 

如果我的文章对你有所帮助,点赞、转发都是一种支持!

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

 

标签:string,int,chan,make,37,value,面试,func,Go
来源: https://blog.51cto.com/u_15289640/2964466

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有