十一长假已经结束,收拾心情准备进入工作状态。
一起来看下上篇文章题目的解析:
1.关于 bool 变量 b 的赋值,下面错误的用法是?
-
A. b = true
-
B. b = 1
-
C. b = bool(1)
-
D. b = (1 == 2)
参考答案及解析:BC。
2.关于变量的自增和自减操作,下面语句正确的是?
A.
i := 1
i++
B.
i := 1
j = i++
C.
i := 1
++i
D.
i := 1
i--
参考答案及解析:AD。知识点:自增自减操作。i++ 和 i-- 在 Go 语言中是语句,不是表达式,因此不能赋值给另外的变量。此外没有 ++i 和 --i。
3.关于GetPodAction定义,下面赋值正确的是
type Fragment interface {
Exec(transInfo *TransInfo) error
}
type GetPodAction struct {
}
func (g GetPodAction) Exec(transInfo *TransInfo) error {
...
return nil
}
-
A. var fragment Fragment = new(GetPodAction)
-
B. var fragment Fragment = GetPodAction
-
C. var fragment Fragment = &GetPodAction{}
-
D. var fragment Fragment = GetPodAction{}
参考答案及解析:ACD。
解析若有不妥之处,欢迎在留言区交流、指正!
看下今天的题目:
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)
2.关于整型切片的初始化,下面正确的是?
-
A. s := make([]int)
-
B. s := make([]int, 0)
-
C. s := make([]int, 5, 10)
-
D. s := []int{1, 2, 3, 4, 5}
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)
}
}
答案以及解析会在下一篇文章中给出,鼓励大家在留言区留下答案,抱团学习,日拱一卒,每天进步一点!
所有学习上的成功,都只依靠两件事 -- 策略和坚持,而坚持本身就是最重要的策略!
推荐阅读:
5 年 Gopher 都不知道的 defer 细节,你别再掉进坑里!
如果我的文章对你有所帮助,点赞、转发都是一种支持!