单值上下文中的多值ERROR

时间:2014-07-29 14:22:53

标签: go

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

multiple-value fmt.Println() in single-value context

我试图创建一个函数,该函数接收可变数量的整数并在一行上打印每个变量。

GO:

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
}

嗯,错了什么?

1 个答案:

答案 0 :(得分:13)

查看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
}