gpt4 book ai didi

arrays - 如何从 Golang 中的不同函数将一个数组的元素复制到另一个数组

转载 作者:IT王子 更新时间:2023-10-29 02:04:10 24 4
gpt4 key购买 nike

我想知道如何将一个函数返回的一个数组的元素复制到另一个函数中的另一个数组中。

例如:

 func PossibleMoves()[8] int{
/* calculations*/
return Posmoves[]
}

func traversal(){

var currentarray [8] int

copy(Posmoves,currentarray)
}

这显示了一个错误,说未定义的 Posmoves,我应该如何更正它...

最佳答案

Copy函数使用两个 slice 作为参数(1 -> dst, 2 -> src),那么,你必须使用两个 slice 或者转换你的 >[8]int 数组到 slice ,您可以使用 [:] 运算符来完成。此运算符将返回一个 slice ,该 slice 将引用 [8]int 数组。

Posmoves 未定义,因为您没有在任何地方定义。然后,您可以创建一个全局变量:

var Posmoves [8]int

func main() {
PossibleMoves()
traversal()

fmt.Println(Posmoves)
}


func PossibleMoves() [8]int {
/* calculations*/
return Posmoves
}

func traversal() {

var currentarray [8]int

copy(Posmoves[:], currentarray[:])
}

Playground

它返回 [0 0 0 0 0 0 0 0] 因为两个数组都初始化为零值(默认值)。

您也可以执行 trasversal(),这将从 PossibleMoves() 获取 Posmoval 数组。所以:

func main() {
traversal()
}

func PossibleMoves() [8]int {
/* calculations*/

var Posmoves [8]int

return Posmoves
}

func traversal() {

var currentarray [8]int

Posmoves := PossibleMoves()

copy(Posmoves[:], currentarray[:])

fmt.Println(currentarray)
}

Playground

输出将再次为:[0 0 0 0 0 0 0 0]

希望对你有帮助! :-)

关于arrays - 如何从 Golang 中的不同函数将一个数组的元素复制到另一个数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38931901/

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