所以,我重命名了我的 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/