草庐IT

interface-design

全部标签

golang - 取消引用后从结构中获取接口(interface)实现实例

创建一个实现接口(interface)的结构。将其封装到另一个结构中。获取结构/取消引用它。获取指向接口(interface)实现的指针。取消引用指针会导致指向接口(interface)的另一个点。为什么取消引用指向实现的指针不会给出实现实例?packagemainimport("fmt""net/http""golang.org/x/net/http2")funcmain(){transport:=&http2.Transport{}client:=&http.Client{Transport:transport}tmp1:=client.Transporttmp2:=&client

go - 需要在 Golang 中使用 Reflect 构造接口(interface)/指针,不工作

所以,这是可行的:house:=model.House{};err=db.First(&house).Error;但是,这不起作用:varhousemodel.House;fetchFromDatabase:=reflect.New(reflect.TypeOf(house)).Interface();err=db.First(&fetchFromDatabase).Error;...数据库库报错:unsupporteddestination,shouldbesliceorstruct对我来说,考虑到“House”类型是一个结构,那应该是一个结构。但是,我仍然在思考Reflect...

go - 需要在 Golang 中使用 Reflect 构造接口(interface)/指针,不工作

所以,这是可行的:house:=model.House{};err=db.First(&house).Error;但是,这不起作用:varhousemodel.House;fetchFromDatabase:=reflect.New(reflect.TypeOf(house)).Interface();err=db.First(&fetchFromDatabase).Error;...数据库库报错:unsupporteddestination,shouldbesliceorstruct对我来说,考虑到“House”类型是一个结构,那应该是一个结构。但是,我仍然在思考Reflect...

go - Cast interface{} 以输入模板

Templates.ExecuteTemplate(w,"index.html",map[string]interface{}{"Games":games})}games是[]map[string]interface{}(sql查询的映射结果)在模板中:{{range$gval:=.Games}}{{howtomakesomethinglike:$gval.name.(string)}}{{end}}如何在模板中将map的interface{}值转换为字符串(或整数)?在'去'我可以做游戏[0]["name"].(string)当我执行$gval.name时,它会写入十六进制字符串

go - Cast interface{} 以输入模板

Templates.ExecuteTemplate(w,"index.html",map[string]interface{}{"Games":games})}games是[]map[string]interface{}(sql查询的映射结果)在模板中:{{range$gval:=.Games}}{{howtomakesomethinglike:$gval.name.(string)}}{{end}}如何在模板中将map的interface{}值转换为字符串(或整数)?在'去'我可以做游戏[0]["name"].(string)当我执行$gval.name时,它会写入十六进制字符串

go - 如何比较 Golang 中的结构数据和接口(interface)数据?

我正在尝试在Golang中创建一个通用的二叉树。如何比较接口(interface)中的数据和代码中输入的数据?这是我正在尝试做的一个例子。给我带来麻烦的比较是这个}elseifcur.data-packageDSAAtypeTreeNodestruct{datainterface{}right*TreeNodeleft*TreeNode}typeBinarySearchTreestruct{root*TreeNode}funcBSTCreate()*BinarySearchTree{return&BinarySearchTree{nil}}func(b*BinarySearchTree

go - 如何比较 Golang 中的结构数据和接口(interface)数据?

我正在尝试在Golang中创建一个通用的二叉树。如何比较接口(interface)中的数据和代码中输入的数据?这是我正在尝试做的一个例子。给我带来麻烦的比较是这个}elseifcur.data-packageDSAAtypeTreeNodestruct{datainterface{}right*TreeNodeleft*TreeNode}typeBinarySearchTreestruct{root*TreeNode}funcBSTCreate()*BinarySearchTree{return&BinarySearchTree{nil}}func(b*BinarySearchTree

go - 如何使用接口(interface)联合两个不同的结构?

我有以下代码:packagemainimport("log")typeDatastruct{IdintNamestring}typeDataErrorstruct{MessagestringErrorCodestring}funcmain(){response:=Data{Id:100,Name:`Name`}iftrue{response=DataError{Message:`message`,ErrorCode:`code`}}log.Println(response)}此代码返回一个错误:./start.go:20:cannotuseDataErrorliteral(typeDa

go - 如何使用接口(interface)联合两个不同的结构?

我有以下代码:packagemainimport("log")typeDatastruct{IdintNamestring}typeDataErrorstruct{MessagestringErrorCodestring}funcmain(){response:=Data{Id:100,Name:`Name`}iftrue{response=DataError{Message:`message`,ErrorCode:`code`}}log.Println(response)}此代码返回一个错误:./start.go:20:cannotuseDataErrorliteral(typeDa

json - 尝试遍历json数组的map时出现Golang接口(interface)转换错误

当我尝试遍历某些json的映射时遇到问题。原始JSON数据如下所示:"dataArray":[{"name":"default","url":"/some/url"},{"name":"second","url":"/another/url"}]map看起来像这样:[map[name:defaulturl:/some/url]map[name:secondurl:/another/url]]代码如下所示:for_,urlItem:=rangeitem.(map[string]interface{}){dosomestuff}当它是一个JSON对象时,这通常有效,但这是JSON中的一个数