github.com/traefik/yaegi@v0.15.1/_test/issue-1488.go (about)

     1  package main
     2  
     3  import "fmt"
     4  
     5  type vector interface {
     6  	[]int | [3]int
     7  }
     8  
     9  func sum[V vector](v V) (out int) {
    10  	for i := 0; i < len(v); i++ {
    11  		out += v[i]
    12  	}
    13  	return
    14  }
    15  
    16  func main() {
    17  	va := [3]int{1, 2, 3}
    18  	vs := []int{1, 2, 3}
    19  	fmt.Println(sum[[3]int](va), sum[[]int](vs))
    20  }
    21  
    22  // Output:
    23  // 6 6