下面这段代码能否编译通过?如果可以,输出什么?
func GetValue() int {
return 1
}
func main() {
i := GetValue()
switch i.(type) {
case int:
println("int")
case string:
println("string")
case interface{}:
println("interface")
default:
println("unknown")
}
}
下面这段代码能否编译通过?如果可以,输出什么?
func GetValue() int {
return 1
}
func main() {
i := GetValue()
switch i.(type) {
case int:
println("int")
case string:
println("string")
case interface{}:
println("interface")
default:
println("unknown")
}
}
`单行代码`
类型断言只能用于接口类型
只有接口类型才可以使用类型断言
m
只有接口类型才可以使用类型断言
报错
m
打卡
只有接口类型才可以使用类型断言
类型断言只能用于接口类型
mark
打卡
打卡
interface类型才可以
类型断言,类型断言的语法形如:i.(type),其中 i 是接口,type 是固定关键字,需要注意的是,只有接口类型才可以使用类型断言。
此题 编译失败。类型断言,类型断言的语法形如:i.(type),其中 i 是接口,type 是固定关键字,需要注意的是,只有接口类型才可以使用类型断言。
打卡
打卡
此题 编译失败。类型断言,类型断言的语法形如:i.(type),其中 i 是接口,type 是固定关键字,需要注意的是,只有接口类型才可以使用类型断言。
打卡
mk
只有接口类型才有 类型断言
扫了一圈全部都是类型断言,从哪个不学无术的教授处学的? type switch和type assertion分不清楚吗?
打卡
打卡
mk
func GetValue() int { return 1 }
func main() { i := GetValue() v := interface{}(i) switch v.(type) { case int: println("int") case string: println("string") case interface{}: println("interface") default: println("unknown") } }
只有接口类型interface可以进行类型断言i.(type)
返回值类型int改为interface{}就没问题了
mark
func GetValue() int { return 1 }
func main() { i := GetValue() switch i.(type) { case int: println("int") case string: println("string") case interface{}: println("interface") default: println("unknown") } }
答案及解析:编译失败。考点:类型断言,类型断言的语法形如:i.(type),其中 i 是接口,type 是固定关键字,需要注意的是,只有接口类型才可以使用类型断言。
1
i.(type) 只能用于接口类型
mark
只有接口类型才能断言
类型断言,类型断言的语法形如:i.(type),其中 i 是接口,type 是固定关键字,需要注意的是,只有接口类型才可以使用类型断言。
mark
考点:类型断言,类型断言的语法形如:i.(type),其中 i 是接口,type 是固定关键字,需要注意的是,只有接口类型才可以使用类型断言。
mark
这是类型判断不是类型断言
周末打开
答案解析: 答案及解析:编译失败。考点:类型断言,类型断言的语法形如:i.(type),其中 i 是接口,type 是固定关键字,需要注意的是,只有接口类型才可以使用类型断言。
mark
mk
mark
只有接口类型才可以使用类型断言。
mark
答案及解析:编译失败。考点:类型断言,类型断言的语法形如:i.(type),其中 i 是接口,type 是固定关键字,需要注意的是,只有接口类型才可以使用类型断言。
func GetValue() interface{} { return 1 }
func main() { i := GetValue() switch i.(type) { case interface{}: println("interface") case int: println("int") case string: println("string")
}