《零基础Go语言算法实战》
【题目 2-3】函数错误排查
下面哪些函数不能通过编译?
func Func1(string string) string {
return string + string
}
func Func2(len int) int {
return len + len
}
func Func3(val, default string) string {
if val == "" {
return default
}
return val
}
func Func4(nil int) int {
return nil + nil
}
【解答】
本题考查关键字问题,关键字不能作为变量名、参数名、函数名、结构体名、接口名。
Func3() 函数不能通过编译。因为 Func3() 函数中的 default 属于关键字。string、len、nil
是预定义标识符,可以在局部使用。不过不建议这样书写代码,因为可读性极差。