go - 如何将结构数组传递给我的结构函数

标签 go

所以,我重命名了我的 slice 以便在函数中使用,其中一个连接到数组(就像类方法)。

type Points []Point


func (p Points) Isset(ip Point) bool {
     for _, i := range p {
         if i.Hash == ip.Hash {
             return true
         }
     }
     return false
}

但这没关系,因为在另一个函数中,它试图传递类型为 Points 的 slice ,我遇到了一些麻烦...

例子如下:

func (p Points) Merge(ip Points) {
    fmt.Println(p)
}

在第一个函数中 - 我可以访问我的 p 变量作为数组。第二个 - p - 只是空数组。但是,如果我更改传递变量的类型 - 一切都会好起来的。

我该怎么办...我需要指定我的合并功能。这个解决方案看起来很棒,但行不通。

最佳答案

我不确定我是否理解,这是一个游戏示例,显示了据我所知这两个功能都按预期工作。

https://play.golang.org/p/n5ch-Wqbil

也许您在从一个函数调用另一个函数时遇到了一些问题(比如从 Merge 调用 Isset ?)在这种情况下,@Games 的回答可能仍然适用。

编辑 这个例子展示了我认为您可能正在尝试做的事情。 https://play.golang.org/p/CNEt-poKdN它似乎工作得很好(虽然有 N^2 次性能)

关于go - 如何将结构数组传递给我的结构函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37022633/

相关文章:

sql - 在 Golang 中编写一个返回接口(interface) slice 的函数

docker - 如何通过Golang的SDK获取docker api版本?

go - 等价于 C++ reinterpret_cast a void* to a struct in Golang

go - 检查所有 goroutine 是否已完成而不使用 wg.Wait()

mongodb - 如何比较 mongodb 中的浮点值?

docker - 使用 Go 访问远程 docker 存储库

Golang - 单独运行时长

go - 是否可以像这样通过反射获取函数名称?

go - 如何将 go 方法转换为函数?

go - 使用sync.WaitGroup.wait时如何实现超时?