【发布时间】:2017-02-09 00:32:09
【问题描述】:
我有这个代码sn-p:
if (reflect.TypeOf(device).String() == "*types.VirtualDisk") {
disk := device.(types.VirtualDisk)
fmt.Printf("%v - %v \n", "capacityInKB", disk.CapacityInKB)
}
我得到的:
不可能的类型断言:types.VirtualDisk 没有实现 types.BaseVirtualDevice(GetVirtualDevice方法有指针接收器)
但如果我将其修改为
if (reflect.TypeOf(device).String() == "*types.VirtualDisk") {
//disk := device.(types.VirtualDisk)
fmt.Printf("%v - %v \n", "capacityInKB", device)//disk.CapacityInKB)
}
它可以工作并打印对象的所有属性。我想如何转换它?
【问题讨论】:
标签: go interface type-assertion