【发布时间】:2011-03-16 23:56:19
【问题描述】:
我有这个在列表上使用迭代器的代码 sn-p
for x:= range s.faces.Iter(){
x.Render()
}
正如编译器所指出的,x 是 interface{} 类型,并且我的代码中没有定义方法 (i interface)Render()。
改成
for x:= range s.faces.Iter(){
x.(faceTri).Render()
}
编译,因为有方法func(f faceTri)Render() 但在执行时会引发此运行时错误:
panic:接口转换:接口是*geometry.faceTri,而不是geometry.faceTri
(几何就是包)
那么,任何人都可以向我指出一个资源来解释使用迭代器 + 强制转换的 go 方式吗?
【问题讨论】: