单值上下文中的多值ERROR

AUL*_*AUL 17 go

编译GO代码时出现此错误:

multiple-value fmt.Println() in single-value context
Run Code Online (Sandbox Code Playgroud)

我正在尝试创建一个函数,它接受可变数量的整数并在一行上打印每个变量.

走:

package main 

import (
    "fmt"
)

func main() {
    slice := []int{1,3,4,5}
    vf(slice...)
}

func vf(a ...int) int {
    if len(a)==0 {
        return 0
    }
    var x int
    for _, v := range a {
        x = fmt.Println(v)
    }
    return x
}
Run Code Online (Sandbox Code Playgroud)

嗯有什么不对?

asc*_*pis 15

查看http://godoc.org/fmt#Println

fmt.Println 返回多个值..一个int和错误:

func Println(a ...interface{}) (n int, err error)

您只是分配给int.试试这个:

package main 

import (
    "fmt"
)

func main() {
    slice := []int{1,3,4,5}
    vf(slice...)
}

func vf(a ...int) int {
    if len(a)==0 {
        return 0
    }
    var x int
    for _, v := range a {
        x, _ = fmt.Println(v)
    }
    return x
}
Run Code Online (Sandbox Code Playgroud)

  • 我90%肯定他正在尝试使用`fmt.Sprintf而不是'Println`. (9认同)