返回介绍

第三十三天

发布于 2023-06-25 22:22:03 字数 3311 浏览 0 评论 0 收藏 0

1.关于协程,下面说法正确是()

  • A. 协程和线程都可以实现程序的并发执行;

  • B. 线程比协程更轻量级;

  • C. 协程不存在死锁问题;

  • D. 通过 channel 来进行协程间的通信;

参考答案及解析:AD。

2.关于循环语句,下面说法正确的有()

  • A. 循环语句既支持 for 关键字,也支持 while 和 do-while;

  • B. 关键字 for 的基本使用方法与 C/C++ 中没有任何差异;

  • C. for 循环支持 continue 和 break 来控制循环,但是它提供了一个更高级的 break,可以选择中断哪一个循环;

  • D. for 循环不支持以逗号为间隔的多个赋值语句,必须使用平行赋值的方式来初始化多个变量;

参考答案及解析:CD。

3.下面代码输出正确的是?

func main() {
    i := 1
    s := []string{"A", "B", "C"}
    i, s[i-1] = 2, "Z"
    fmt.Printf("s: %v \n", s)
}
  • A. s: [Z,B,C]

  • B. s: [A,Z,C]

参考答案及解析:A。知识点:多重赋值。

多重赋值分为两个步骤,有先后顺序:

  • 计算等号左边的索引表达式和取址表达式,接着计算等号右边的表达式;

  • 赋值;

所以本例,会先计算 s[i-1],等号右边是两个表达式是常量,所以赋值运算等同于 i, s[0] = 2, "Z"。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文