使用 golang html/template(与 相同的行为text/template)。如果我有一个带有接口类型成员的结构,我将无法访问底层类型的成员(特别是尝试访问实现接口InnerInterface但通过InnerInterface接口类型而不是结构类型返回的结构上的字段) .http://play.golang.org/p/ZH8wSK83oMpackage mainimport "fmt"import "os"import "html/template"type InnerInterface interface{ InnerSomeMethod() }type MyInnerStruct struct { Title string }func (mis MyInnerStruct)InnerSomeMethod() { fmt.Println("Just to show we're satisfying the interface") }type MyOuterStruct struct { Inner InnerInterface }func main() { fmt.Println("Starting") arg := MyOuterStruct{Inner:MyInnerStruct{Title:"test1"}} err := template.Must(template.New("testtmpl").Parse("{{.Inner.Title}}")).Execute(os.Stdout, arg) if err != nil { panic(err) }}更改:type MyOuterStruct struct { Inner InnerInterface }到一个完全通用的界面,即使type MyOuterStruct struct { Inner interface{} }其正确呈现。这让我相信interface{}渲染引擎会特别对待它。有没有比interface{}在我希望能够动态评估这样的字段时使用更好的方法?
1 回答
- 1 回答
- 0 关注
- 178 浏览
添加回答
举报
0/150
提交
取消