我正在尝试创建一个表示指向另一个类型的指针片段的类型并为其定义一个方法,我的代码看起来与此类似,尽管对于示例来说有点简化:
package column
type Column struct {
name string
}
type Columns []*Column
func (c Column) ToString() string {
return c.name
}
func (c Columns) ToStrings() []string {
var strSlice []string
for _, v := range c {
strSlice = append(strSlice, v.ToString())
}
return strSlice
}
然后在单独的文件中调用它,如下所示:
import (
c "main/column"
"strings"
)
type Columns c.Columns
func ToString(col Columns) string {
return strings.Join(col.ToStrings(), ",\n")
}
但是,当我尝试在导出的“Columns”类型上调用方法 ToStrings()
时,出现此错误:
columns.ToStrings undefined (type Columns has no field or method ToStrings)
编译器似乎找不到方法ToStrings()
。有没有解决的办法?为什么编译器找不到为“Columns”类型定义的导出方法?
最佳答案
type Columns c.Columns
使用新的方法集创建一个全新的类型。这样做的唯一原因是专门删除现有类型的方法。
关于go - col.ToStrings 未定义(类型 Columns 没有字段或方法 ToStrings),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42771289/