Go used as value问题

Posted nolali

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Go used as value问题相关的知识,希望对你有一定的参考价值。

  练习Go变参时遇到一个报错:used as value 代码如下:

 

// 错误代码
func myfunc(arg ...int) {
	for _, n := range arg {
		fmt.Printf("And the number is: %d
", n)
	}
}
func main() {
	fmt.Printf(myfunc(1, 2, 3, 4, 5))
}

// 报错 myfunc(1, 2, 3, 4, 5) used as value


// 正确代码
func myfunc(arg ...int) {
	for _, n := range arg {
		fmt.Printf("And the number is: %d
", n)
	}
}
func main() {
	myfunc(1, 2, 3, 4, 5)
}
// 结果:
//And the number is: 1
//And the number is: 2
//And the number is: 3
//And the number is: 4
//And the number is: 5


// 或者 正确代码
func myfunc(arg ...int) int {
	m := 0
	for _, n := range arg {
		m += n
	}
	return m
}
func main() {
	fmt.Printf("m = %d", myfunc(1, 2, 3, 4, 5))
}
// 结果:m = 15

 

  从上面代码可以看出myfunc()函数是没有返回值的,直接调用就可以,不需要使用fmt包或者给返回值进行输出。

 

以上是关于Go used as value问题的主要内容,如果未能解决你的问题,请参考以下文章

GO方法集问题cannot use xxxxx as xxxxx value in variable declaration

GO方法集问题cannot use xxxxx as xxxxx value in variable declaration

GO方法集问题cannot use xxxxx as xxxxx value in variable declaration

GO 智能合约cannot use transactionRecordId + strconv.Itoa(id) (type string) as type byte in append(示例代码(代

[RxJS] Implement RxJS `switchMap` by Canceling Inner Subscriptions as Values are Passed Through(代码片段

warning:suggest parentheses around assignment used as truth value