新手表示正在看的 PDF https://github.com/mikespook/Learning-Go-zh-cn
里边有 splats... CofeeScript 里的叫法,, 顺带问下 Golang 里这叫啥?
问题是我用了这样的语法, 结果编译过程报错.. 请问这语法在新的 Golang 里是怎么?
我的环境是
```
➤➤ uname -a
Darwin chentekiMacBook-Air.local 12.4.1 Darwin Kernel Version 12.4.1: Tue May 21 17:04:50 PDT 2013; root:xnu-2050.40.51~1/RELEASE_X86_64 x86_64
➤➤ go version
go version go1.1.2 darwin/amd64
```
![](http://ww3.sinaimg.cn/large/62752320gw1e9boptfl84j211m0hitc5.jpg)
书上说的没错,你理解的有偏差。
package main
import "fmt"
func add(arg ...int) int {
value := 0
for _, v := range arg {
value += v
}
return value
}
func demo(arg ...int) {
fmt.Println(add(arg...))
}
func main() {
demo(1, 2, 3, 4)
}
#5
更多评论
变参,也叫不定参数。
你这里的 add 方法并没有接收一个变参,你不能直接将一个变参传递给 add。
可以这么调用:add(arg[0], arg[1])
当然,你需要保证 arg 长度大于1。
#1