草庐IT

multiple-interface-implem

全部标签

戈朗 : interface to swap two numbers

我想使用接口(interface)交换两个数字,但接口(interface)的概念让我很困惑。http://play.golang.org/p/qhwyxMRj-c这是代码和Playground。如何使用界面并交换两个输入数字?我需要定义两个结构吗?typenumstruct{valueinterface{}}typenumbersstruct{b*numc*num}func(a*num)SwapNum(var1,var2interface{}){varanumtemp:=var1var1=var2var2=temp}funcmain(){a:=1b:=2c:=3.5d:=5.5Swa

戈朗 : interface to swap two numbers

我想使用接口(interface)交换两个数字,但接口(interface)的概念让我很困惑。http://play.golang.org/p/qhwyxMRj-c这是代码和Playground。如何使用界面并交换两个输入数字?我需要定义两个结构吗?typenumstruct{valueinterface{}}typenumbersstruct{b*numc*num}func(a*num)SwapNum(var1,var2interface{}){varanumtemp:=var1var1=var2var2=temp}funcmain(){a:=1b:=2c:=3.5d:=5.5Swa

go - 如何将 golang 结构标记为实现接口(interface)?

我有接口(interface):typeMyInterfaceinterface{...}我想标记我的结构实现了它。我认为这是不可能的,但我想确定。我做了以下操作,但我认为它会产生一个实现接口(interface)的匿名变量。我说得对吗?typeMyStructstruct{...MyInterface} 最佳答案 在Go中,实现接口(interface)是隐式的。无需明确将其标记为实现接口(interface)。虽然有点不同,但您可以使用赋值来测试类型是否实现了接口(interface),如果没有实现,则会产生编译时错误。看起来像

go - 如何将 golang 结构标记为实现接口(interface)?

我有接口(interface):typeMyInterfaceinterface{...}我想标记我的结构实现了它。我认为这是不可能的,但我想确定。我做了以下操作,但我认为它会产生一个实现接口(interface)的匿名变量。我说得对吗?typeMyStructstruct{...MyInterface} 最佳答案 在Go中,实现接口(interface)是隐式的。无需明确将其标记为实现接口(interface)。虽然有点不同,但您可以使用赋值来测试类型是否实现了接口(interface),如果没有实现,则会产生编译时错误。看起来像

string - 在 Golang 中将 []interface 转换为 []string

我正在使用github.com/fatih/structs使用toValues()函数将结构的所有字段的值转换为[]interface{}的包。参见here.这工作正常,但最终我想使用csv包将值写入csv文件。csv.Write()函数需要[]string作为输入。简而言之:如何轻松地将toValues()的输出转换为字符串数组? 最佳答案 即使所有值都是具体类型string,您也不能简单地将[]interface{}转换为[]string,因为这两种类型具有不同的内存布局/表示。详情见Cannotconvert[]stringt

string - 在 Golang 中将 []interface 转换为 []string

我正在使用github.com/fatih/structs使用toValues()函数将结构的所有字段的值转换为[]interface{}的包。参见here.这工作正常,但最终我想使用csv包将值写入csv文件。csv.Write()函数需要[]string作为输入。简而言之:如何轻松地将toValues()的输出转换为字符串数组? 最佳答案 即使所有值都是具体类型string,您也不能简单地将[]interface{}转换为[]string,因为这两种类型具有不同的内存布局/表示。详情见Cannotconvert[]stringt

go - 如何避免为类似的 golang 结构重新实现 sort.Interface

在Golang中有一个问题困扰着我。假设我有2个结构:typeDogstruct{NamestringBreedstringAgeint}typeCatstruct{NamestringFavoriteFoodstringAgeint}当我尝试按Age对[]*Dog和[]*Cat进行排序时,我必须定义2个不同的排序结构喜欢:typeSortCat[]*Catfunc(cSortCat)Len()int{//..}func(cSortCat)Swap(i,jint){//..}func(cSortCat)Less(i,jint)bool{//..}typeSortDog[]*Dogfun

go - 如何避免为类似的 golang 结构重新实现 sort.Interface

在Golang中有一个问题困扰着我。假设我有2个结构:typeDogstruct{NamestringBreedstringAgeint}typeCatstruct{NamestringFavoriteFoodstringAgeint}当我尝试按Age对[]*Dog和[]*Cat进行排序时,我必须定义2个不同的排序结构喜欢:typeSortCat[]*Catfunc(cSortCat)Len()int{//..}func(cSortCat)Swap(i,jint){//..}func(cSortCat)Less(i,jint)bool{//..}typeSortDog[]*Dogfun

go - 如何将字符串从接口(interface)转换为golang中的[]字符串?

我正在解析一个包含字符串数组的JSON对象:variiinterface{}json:="{\"aString\":[\"aaa_111\",\"bbb_222\"],\"whatever\":\"ccc\"}"err:=json.Unmarshal([]byte(json),&ii)iferr!=nil{log.Fatal(err)}data:=ii.(map[string]interface{})fmt.Println(data["aString"])//outputs:["aaa_111""bbb_222"]我试图将data["aString"]转换为[]string以便能够对其

go - 如何将字符串从接口(interface)转换为golang中的[]字符串?

我正在解析一个包含字符串数组的JSON对象:variiinterface{}json:="{\"aString\":[\"aaa_111\",\"bbb_222\"],\"whatever\":\"ccc\"}"err:=json.Unmarshal([]byte(json),&ii)iferr!=nil{log.Fatal(err)}data:=ii.(map[string]interface{})fmt.Println(data["aString"])//outputs:["aaa_111""bbb_222"]我试图将data["aString"]转换为[]string以便能够对其