diff options
author | Ondřej Surý <ondrej@sury.org> | 2011-01-17 12:40:45 +0100 |
---|---|---|
committer | Ondřej Surý <ondrej@sury.org> | 2011-01-17 12:40:45 +0100 |
commit | 3e45412327a2654a77944249962b3652e6142299 (patch) | |
tree | bc3bf69452afa055423cbe0c5cfa8ca357df6ccf /test/ddd.go | |
parent | c533680039762cacbc37db8dc7eed074c3e497be (diff) | |
download | golang-upstream/2011.01.12.tar.gz |
Imported Upstream version 2011.01.12upstream/2011.01.12
Diffstat (limited to 'test/ddd.go')
-rw-r--r-- | test/ddd.go | 34 |
1 files changed, 27 insertions, 7 deletions
diff --git a/test/ddd.go b/test/ddd.go index c9949c36e..b95d6e883 100644 --- a/test/ddd.go +++ b/test/ddd.go @@ -14,13 +14,13 @@ func sum(args ...int) int { return s } -func sumC(args ...int) int { return func() int { return sum(args) }() } +func sumC(args ...int) int { return func() int { return sum(args...) }() } -var sumD = func(args ...int) int { return sum(args) } +var sumD = func(args ...int) int { return sum(args...) } -var sumE = func() func(...int) int { return func(args ...int) int { return sum(args) } }() +var sumE = func() func(...int) int { return func(args ...int) int { return sum(args...) } }() -var sumF = func(args ...int) func() int { return func() int { return sum(args) } } +var sumF = func(args ...int) func() int { return func() int { return sum(args...) } } func sumA(args []int) int { s := 0 @@ -30,10 +30,14 @@ func sumA(args []int) int { return s } -func sum2(args ...int) int { return 2 * sum(args) } +func sumB(args []int) int { return sum(args...) } + +func sum2(args ...int) int { return 2 * sum(args...) } func sum3(args ...int) int { return 3 * sumA(args) } +func sum4(args ...int) int { return 4 * sumB(args) } + func intersum(args ...interface{}) int { s := 0 for _, v := range args { @@ -46,9 +50,9 @@ type T []T func ln(args ...T) int { return len(args) } -func ln2(args ...T) int { return 2 * ln(args) } +func ln2(args ...T) int { return 2 * ln(args...) } -func (*T) Sum(args ...int) int { return sum(args) } +func (*T) Sum(args ...int) int { return sum(args...) } type U struct { *T @@ -119,6 +123,22 @@ func main() { println("sum 9", x) panic("fail") } + if x := sum4(1, 2, 3); x != 4*6 { + println("sum 6", x) + panic("fail") + } + if x := sum4(); x != 4*0 { + println("sum 0", x) + panic("fail") + } + if x := sum4(10); x != 4*10 { + println("sum 10", x) + panic("fail") + } + if x := sum4(1, 8); x != 4*9 { + println("sum 9", x) + panic("fail") + } if x := intersum(1, 2, 3); x != 6 { println("intersum 6", x) panic("fail") |