Skip to content

Commit 4eeeffb

Browse files
Interface test also passing.
1 parent 04688ca commit 4eeeffb

File tree

3 files changed

+21
-0
lines changed

3 files changed

+21
-0
lines changed

_examples/variadic/test.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,11 @@
1515
varStructResult = variadic.VariStructFunc(variadic.NewIntStrUct(1), variadic.NewIntStrUct(2), variadic.NewIntStrUct(3))
1616
print("Variadic Struct s(1)+s(2)+s(3) = %d" % varStructResult)
1717

18+
############### Variadic Over InterFace ##############
19+
varInterFaceResult = variadic.VariInterFaceFunc(variadic.NewIntStrUct(1), variadic.NewIntStrUct(2), variadic.NewIntStrUct(3))
20+
print("Variadic InterFace i(1)+i(2)+i(3) = %d" % varInterFaceResult)
21+
22+
############### Final ##############
1823
if isinstance(varResult, int):
1924
print("Type OK")
2025
else:

_examples/variadic/variadic.go

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,3 +40,18 @@ func VariStructFunc(vargs ...IntStrUct) int{
4040
}
4141

4242
/////////////// Variadic Over Interface //////////////
43+
type IntInterFace interface {
44+
Number() int
45+
}
46+
47+
func (is *IntStrUct) Number() int {
48+
return is.p
49+
}
50+
51+
func VariInterFaceFunc(vargs ...IntInterFace) int{
52+
total := 0
53+
for _, inst := range vargs {
54+
total += inst.Number()
55+
}
56+
return total
57+
}

main_test.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -823,6 +823,7 @@ func TestBindVariadic(t *testing.T) {
823823
want: []byte(`NonVariadic 1+[2+3+4]+5 = 15
824824
Variadic 1+2+3+4+5 = 15
825825
Variadic Struct s(1)+s(2)+s(3) = 6
826+
Variadic InterFace i(1)+i(2)+i(3) = 6
826827
Type OK
827828
`),
828829
})

0 commit comments

Comments
 (0)