Golang:在 Go 中输入 By?

这是来自 Golang.org http://golang.org/pkg/sort/


 // By is the type of a "less" function that defines the ordering of its Planet arguments.

 type By func(p1, p2 *Planet) bool

我从未见过这种结构。func 怎么出现在 type 之后?这里的类型是什么?


我见过以下结构,但


type aaaaaa interface { aaa() string }

type dfdfdf struct { } 

没见过像


type By func(p1, p2 *Planet) bool

这在 Go 中怎么可能?type 可以带接口、struct 关键字以外的东西吗


慕后森
浏览 198回答 2
2回答

冉冉说

您可以使用任何基本类型(包括另一个用户定义的类型)在 go 中定义新类型。例如,如果您定义一个新类型 Filetype File struct {}用一些方法func (f *File) Close() { ... } func (f *File) Size() { ... }然后,您可以定义一个新类型,称为:type SpecialFile File并在其上定义您自己的不同方法。func (f *SpecialFile) Close() { (*File)(f).Close() }需要注意的重要一点是,SpecialFile 类型没有 Size 方法,即使它的基本类型是 File。您必须将其转换为 *File 才能调用 Size 方法。如果您希望它们甚至不在同一个包中,您可以对您甚至不拥有的类型执行此操作。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go