r.(type) 这里是什么意思

来源:6-4 接口的值类型

hzyhan

2019-12-25

switch v := r.(type) {
case mock.Retriever:
fmt.Println(“Contents:”, v.Contents)
case *real.Retriever:
fmt.Println(“Contents:”, v.UserAgent)

写回答

2回答

ZoneTw

2020-03-31

幫補資料: https://tour.golang.org/methods/16

0
0

ccmouse

2019-12-31

就是知道r这个接口变量到底实际上是什么类型。用switch r.(type)来表示。

后面case mock.Retriever表示如果r是一个mock.Retriever,那么就进到这个case分支。此时v的类型是mock.Retriever,所以可以说:v.Contents。另一方面,real.Retriever里面才会有v.UserAgent。

0
0

Google资深工程师深度讲解Go语言 由浅入深掌握Go语言

语法+分布式爬虫实战 为转型工程师量身打造

5995 学习 · 1909 问题

查看课程