package main
import "fmt"
// 类型
type List []int
/*
ex:
var list List
fmt.Printf("类型:%T",list)
res:
类型:main.List
*/
// 方法:输出长度
func (l List) Len() int {
return len(l)
}
/*
ex:
var list List
fmt.Printf("长度:%d",list.Len())
res:
长度:0
*/
func (l *List) Append(val int) {
*l = append(*l,val)
}
/*
ex:
var list List
list.Append(123)
fmt.Printf("Append After:%v",list)
res:
Append After:[123]
*/
type Appender interface {
Append(int)
}
/*
ex:
li := List{1,2,3}
var a Appender
a = li
fmt.Println(a.Append(1))
res:
[1 2 3 1]
*/
func CountInto(a Appender,start,end int) {
for i := start;i <= end;i++{
a.Append(i)
}
}
/*
ex:
res:
*/
type Lener interface {
Len() int
}
/*
ex:
li := MyString("A B C")
var a Lener
a = li
fmt.Println(a.Len())
res:
5
*/
func LongEnough(l Lener) bool {
return l.Len()*10>42
}
/*
ex:
res:
*/
type MyString string
func main() {
//A bare valued
var lst List
if LongEnough(lst){
fmt.Printf("-lst is enougth\n")
}
// A pointer value
plst := new(List)
CountInto(plst,1,10)
if LongEnough(plst){
fmt.Printf("-plst is long enough\n")
}
}
方法定义
猜你喜欢
转载自blog.csdn.net/q320036715/article/details/84899472
今日推荐
周排行