File tree Expand file tree Collapse file tree 3 files changed +21
-0
lines changed Expand file tree Collapse file tree 3 files changed +21
-0
lines changed Original file line number Diff line number Diff line change 15
15
varStructResult = variadic .VariStructFunc (variadic .NewIntStrUct (1 ), variadic .NewIntStrUct (2 ), variadic .NewIntStrUct (3 ))
16
16
print ("Variadic Struct s(1)+s(2)+s(3) = %d" % varStructResult )
17
17
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 ##############
18
23
if isinstance (varResult , int ):
19
24
print ("Type OK" )
20
25
else :
Original file line number Diff line number Diff line change @@ -40,3 +40,18 @@ func VariStructFunc(vargs ...IntStrUct) int{
40
40
}
41
41
42
42
/////////////// 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
+ }
Original file line number Diff line number Diff line change @@ -823,6 +823,7 @@ func TestBindVariadic(t *testing.T) {
823
823
want : []byte (`NonVariadic 1+[2+3+4]+5 = 15
824
824
Variadic 1+2+3+4+5 = 15
825
825
Variadic Struct s(1)+s(2)+s(3) = 6
826
+ Variadic InterFace i(1)+i(2)+i(3) = 6
826
827
Type OK
827
828
` ),
828
829
})
You can’t perform that action at this time.
0 commit comments