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 1515varStructResult = variadic .VariStructFunc (variadic .NewIntStrUct (1 ), variadic .NewIntStrUct (2 ), variadic .NewIntStrUct (3 ))
1616print ("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 ##############
1823if isinstance (varResult , int ):
1924 print ("Type OK" )
2025else :
Original file line number Diff line number Diff 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+ }
Original file line number Diff line number Diff line change @@ -823,6 +823,7 @@ func TestBindVariadic(t *testing.T) {
823823 want : []byte (`NonVariadic 1+[2+3+4]+5 = 15
824824Variadic 1+2+3+4+5 = 15
825825Variadic Struct s(1)+s(2)+s(3) = 6
826+ Variadic InterFace i(1)+i(2)+i(3) = 6
826827Type OK
827828` ),
828829 })
You can’t perform that action at this time.
0 commit comments