Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
值未在go lang中的输入数组中获得追加_Go - Fatal编程技术网

值未在go lang中的输入数组中获得追加

值未在go lang中的输入数组中获得追加,go,Go,我是围棋新手。我将数组作为输入。我正在尝试将整数值追加到数组中 package main import "fmt" func main() { input := []int{1, 2} fmt.Println("input:", input) addnumber(input) fmt.Println("output:", input) } func addnumber(input []int) {

我是围棋新手。我将数组作为输入。我正在尝试将整数值追加到数组中

package main

import "fmt"

func main() {
    input := []int{1, 2}
    fmt.Println("input:", input)
    addnumber(input)
    fmt.Println("output:", input)
}

func addnumber(input []int) {
    input = append (input,3)
}


如评论中所述。您必须对
addnumber
函数中的值进行处理。我更改了它,以便返回新的切片

package main

import "fmt"

func main() {
    input := []int{1, 2}
    fmt.Println("input:", input)
    input = addnumber(input)
    fmt.Println("output:", input)
}

func addnumber(input []int) []int {
    return append (input,3)
}

由于某种原因,内置的
append()
会返回新的切片,但是您的
addNumber()
不会返回。您的
addNumber()
仅将新切片分配给本地
输入
切片。返回新切片并将其分配给
main()
中的
input
变量。这不是一个数组,它是一个切片副本,这是新手经常遇到的问题。您的函数更改了局部变量
输入
,但没有任何东西会将此更改返回给调用者。这是否回答了您的问题?选项1甚至不应该是一个选项。指向数组的指针产生的问题比它们解决的问题多。@corey指向数组的指针会出现什么样的问题?它们已经是指针了。
package main

import "fmt"

func main() {
    input := []int{1, 2}
    fmt.Println("input:", input)
    addnumber(&input)
    fmt.Println("output:", input)
}

func addnumber(input *[]int) {
    *input = append (*input,3)
}
package main

import "fmt"

func main() {
    input := []int{1, 2}
    fmt.Println("input:", input)
    input = addnumber(input)
    fmt.Println("output:", input)
}

func addnumber(input []int) []int {
    return append (input,3)
}