package main
import (
"fmt"
"sort"
)
// type people []string
// func (p people)Len() int{
// return len(p)
// }
// func (p people)Swap(i,j int){
// p[i],p[j] = p[j],p[i]
// }
// func (p people)Less(i,j int) bool{
// return p[i]>p[j]
// }
// type recover struct{
// sort.Interface
// }
// func (r recover)Less(i,j int)bool{
// return r.Interface.Less(j,i)
// }
// func Recover( data sort.Interface) sort.Interface{
// return recover{data}
// }
/* 定义一个类 */
type person struct{
name string
age string
}
func (p person) getName()string{
return p.name
}
type people []string
func (p people)Len()int {
return len(p)
}
func (p people)Swap(i,j int){
p[i],p[j] = p[j],p[i]
}
func (p people)Less(i,j int)bool{
return p[i] > p[j]
}
/**
*定义一个接口,与java的接口定义类似
*接口只是对一个标准的定义
*不需要继承,只要满足这个接口里面的方法定义都可以认为是这个接口的子类
*/
type Interface interface{
Len() int
Swap(i,j int )
Less(i,j int)bool
}
func print(data Interface){
data.Swap(1,2)
fmt.Println(data)
}
func main() {
p:= person{"左龙龙", "123"}
fmt.Println(p.getName())
s := people{"Zeno", "John", "Al", "Jenny"}
// fmt.Println(s)
// print(s)
// fmt.Println(s)
// fmt.Println(s)
// fmt.Println(sort.Reverse(sort.StringSlice(s)))
// sort.Sort(sort.StringSlice(s))
// fmt.Println(s)
// Recover(s)
// fmt.Println(s)
sort.Sort(s)
// fmt.Println(s)
}
/* 重载,在原有的类型上嵌套一个类型,重置的类型覆写 */
// https://golang.org/pkg/sort/#Sort
go语言---接口
猜你喜欢
转载自my.oschina.net/u/3688108/blog/1797931
今日推荐
周排行