Go col.ToStrings未定义(类型列没有字段或方法ToStrings)

Go col.ToStrings未定义(类型列没有字段或方法ToStrings),go,methods,types,export,slice,Go,Methods,Types,Export,Slice,我试图创建一个表示指向另一个类型的指针片段的类型,并为其定义一个方法,我的代码看起来类似于此,尽管对于示例来说有点简化: package column type Column struct { name string } type Columns []*Column func (c Column) ToString() string { return c.name } func (c Columns) ToStrings() []string { var s

我试图创建一个表示指向另一个类型的指针片段的类型,并为其定义一个方法,我的代码看起来类似于此,尽管对于示例来说有点简化:

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.ToString未定义(类型columns没有字段或方法 ToStrings)


编译器似乎找不到方法
toString()
。有办法解决这个问题吗?为什么编译器找不到为“Columns”类型定义的导出方法?

类型Columns c.Columns
使用新方法集创建一个全新的类型。这样做的唯一原因是专门删除现有类型的方法。

您创建了一个没有方法的新
类型。如果你想从原始类型中获得方法,为什么要创建新类型?我只是觉得它更可读。。所以我从你说的话中得出结论,当我用旧的样式做新的样式时,它没有方法。谢谢你,如果你把它作为一个答案,我会接受它。