Go每日一题 今日(2025-04-01) 的题目如下

3855 次点击 · 4 赞 ·大约8小时之前 开始浏览   · 来源「Golang来啦」

下面这段代码能否编译通过?如果可以,输出什么?

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")
	}
}
3855 阅读
49 回复
Howe
Howe · #1 · 3年之前

类型断言只能用于接口类型

gonglf
gonglf · #2 · 3年之前

只有接口类型才可以使用类型断言

summers
summers · #3 · 3年之前

m

mingtop
mingtop · #4 · 3年之前

只有接口类型才可以使用类型断言

Natsuwau
Natsuwau · #5 · 3年之前

报错

ironbox
ironbox · #6 · 3年之前

m

feiyang
feiyang · #7 · 3年之前

打卡

abcdhope
abcdhope · #8 · 3年之前

只有接口类型才可以使用类型断言

henry1
henry1 · #9 · 3年之前

类型断言只能用于接口类型

neil_liu
neil_liu · #10 · 3年之前

mark

gobanger
gobanger · #11 · 3年之前

打卡

32729842
32729842 · #12 · 3年之前

打卡

cc1234
cc1234 · #13 · 3年之前

interface类型才可以

a406299736
a406299736 · #14 · 3年之前

类型断言,类型断言的语法形如:i.(type),其中 i 是接口,type 是固定关键字,需要注意的是,只有接口类型才可以使用类型断言。

lwcbest
lwcbest · #15 · 3年之前

此题 编译失败。类型断言,类型断言的语法形如:i.(type),其中 i 是接口,type 是固定关键字,需要注意的是,只有接口类型才可以使用类型断言。

mingliangge
mingliangge · #16 · 3年之前

打卡

AntonyZhang
AntonyZhang · #17 · 3年之前

打卡

TimLiuDream
TimLiuDream · #18 · 3年之前

此题 编译失败。类型断言,类型断言的语法形如:i.(type),其中 i 是接口,type 是固定关键字,需要注意的是,只有接口类型才可以使用类型断言。

euibieur894
euibieur894 · #19 · 3年之前

打卡

NovaChaos
NovaChaos · #20 · 2年之前

mk

brothersam
brothersam · #21 · 2年之前

只有接口类型才有 类型断言

Neightly
Neightly · #22 · 2年之前

扫了一圈全部都是类型断言,从哪个不学无术的教授处学的? type switch和type assertion分不清楚吗?

caucer_huazai
caucer_huazai · #23 · 2年之前

打卡

huangyf168
huangyf168 · #24 · 2年之前

打卡

a406299736
a406299736 · #25 · 2年之前

mk

a406299736
a406299736 · #26 · 2年之前

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") } }

Dessert
Dessert · #27 · 2年之前

只有接口类型interface可以进行类型断言i.(type)

xwszt
xwszt · #28 · 2年之前

返回值类型int改为interface{}就没问题了

hasbug
hasbug · #29 · 2年之前

mark

lwcbest
lwcbest · #30 · 2年之前

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 是固定关键字,需要注意的是,只有接口类型才可以使用类型断言。

wzbwzt
wzbwzt · #31 · 2年之前

1

QRQRQRqrqr
QRQRQRqrqr · #32 · 2年之前

i.(type) 只能用于接口类型

summers
summers · #33 · 2年之前
NeightlyNeightly #22 回复

扫了一圈全部都是类型断言,从哪个不学无术的教授处学的? type switch和type assertion分不清楚吗?

mark

ueueq
ueueq · #34 · 2年之前

只有接口类型才能断言

feiyang
feiyang · #35 · 2年之前

类型断言,类型断言的语法形如:i.(type),其中 i 是接口,type 是固定关键字,需要注意的是,只有接口类型才可以使用类型断言。

feiyang
feiyang · #36 · 2年之前
package main

func GetValue() interface{} {
    return 1
}

func main() {
    i := GetValue()
    switch i.(type) {
    case int:
        println("int")
    case string:
        println("string")
    case interface{}:
        println("interface")
    default:
        println("unknown")
    }
}
hasbug
hasbug · #37 · 2年之前

mark

feiyang
feiyang · #38 · 2年之前

考点:类型断言,类型断言的语法形如:i.(type),其中 i 是接口,type 是固定关键字,需要注意的是,只有接口类型才可以使用类型断言。

Zuos
Zuos · #39 · 2年之前

mark

cllgeek
cllgeek · #40 · 2年之前

这是类型判断不是类型断言

feiyang
feiyang · #41 · 2年之前

周末打开

zhangwei_go
zhangwei_go · #42 · 大约1年之前

答案解析: 答案及解析:编译失败。考点:类型断言,类型断言的语法形如:i.(type),其中 i 是接口,type 是固定关键字,需要注意的是,只有接口类型才可以使用类型断言。

528548004
528548004 · #43 · 大约1年之前

mark

BigBigGopher
BigBigGopher · #44 · 大约1年之前

mk

Qmfuser
Qmfuser · #45 · 大约1年之前

mark

feiyang
feiyang · #46 · 7月之前

只有接口类型才可以使用类型断言。

YuPeng
YuPeng · #47 · 7月之前

mark

zhangwei_go
zhangwei_go · #48 · 4月之前

答案及解析:编译失败。考点:类型断言,类型断言的语法形如:i.(type),其中 i 是接口,type 是固定关键字,需要注意的是,只有接口类型才可以使用类型断言。

zhangwei_go
zhangwei_go · #49 · 4月之前

func GetValue() interface{} { return 1 }

func main() { i := GetValue() switch i.(type) { case interface{}: println("interface") case int: println("int") case string: println("string")

default:
    println("unknown")
}

}

添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传