liyujie
2025-08-28 d9927380ed7c8366f762049be9f3fee225860833
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
// run
 
// Copyright 2009 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
 
// Test methods on slices.
 
package main
 
type T []int
 
func (t T) Len() int { return len(t) }
 
type I interface {
   Len() int
}
 
func main() {
   var t T = T{0, 1, 2, 3, 4}
   var i I
   i = t
   if i.Len() != 5 {
       println("i.Len", i.Len())
       panic("fail")
   }
   if T.Len(t) != 5 {
       println("T.Len", T.Len(t))
       panic("fail")
   }
   if (*T).Len(&t) != 5 {
       println("(*T).Len", (*T).Len(&t))
       panic("fail")
   }
}