gpt4 book ai didi

戈朗 : type By in Go?

转载 作者:IT王子 更新时间:2023-10-29 01:43:21 26 4
gpt4 key购买 nike

这是来自 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 中如何实现?类型可以采用接口(interface)、结构关键字以外的其他东西吗?

谢谢~!

最佳答案

type By func(p1, p2 *Planet) bool 是从函数值定义类型的示例。

我们可以通过创建一个新的 By 值并使用 fmt.Printf 打印类型来看到这一点。在下面的示例中,我将 Planet 作为一个字符串来处理——对于示例的目的而言,类型无关紧要。

type.go

package main
import(
"fmt"
)

type Planet string
type By func(p1, p2 *Planet) bool

func main() {
fmt.Printf("The type is '%T'", new(By))
fmt.Println()
}

输出:

mike@tester:~/Go/src/test$ go run type.go
The type is '*main.By'

编辑:根据 nemo 的评论更新。 new关键字返回指向新值的指针。 func 并没有像我错误地认为的那样返回一个函数指针,而是返回一个函数值。

关于戈朗 : type By in Go?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19330426/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com