【发布时间】:2015-03-10 01:50:49
【问题描述】:
我遇到了一段使用.(string) 方法的代码。不知道这叫什么,我很难找到它。
这是我的尝试理解它:
package main
import "fmt"
import "reflect"
func main(){
var b interface{}
b = "silly"
fmt.Println(reflect.TypeOf(b.(string))) // we know that b
// is a string
// at compile time
fmt.Println(reflect.TypeOf(b)) // we do not
}
结果:
string
string
但是,我认为reflect.TypeOf 发生在运行时,而.(string) 会告诉编译器b 确实是一个字符串,这可以用来告诉编译器变量是某种类型.我的理解对吗?
【问题讨论】:
标签: go