多态用法
package main //一种事物的多种形态,都可以按照统一的接口进行操作 //多态 import ( "fmt" "math/rand" "sort" ) type Student struct { Name string Id string Age int sortType int } type Book struct { Name string Author string } //切片默认传地址 type StudentArray []Student func (p StudentArray) Len() int { return len(p) } func (p StudentArray) Less(i, j int) bool { return p[i].Name < p[j].Name } func (p StudentArray) Swap(i, j int) { p[i], p[j] = p[j], p[i] } func main() { var stus StudentArray for i := 0; i < 10; i++ { stu := Student{ Name: fmt.Sprintf("stu%d", rand.Intn(100)), Id: fmt.Sprintf("110%d", rand.Int()), Age: rand.Intn(100), } stus = append(stus, stu) } for _, v := range stus { fmt.Println(v) } fmt.Println("\n\n") sort.Sort(stus) for _, v := range stus { fmt.Println(v) } }
接口嵌套
package main import "fmt" //接口嵌套 一个接口可以嵌套在另外的接口 type Reader interface { Read() } type Writer interface { Write() } type ReadWriter interface { Reader Writer } type File struct { } func (f *File) Read() { fmt.Println("read data") } func (f *File) Write() { fmt.Print("write data") } func Test(rw ReadWriter) { rw.Read() rw.Write() } func main() { var f File Test(&f) }
原文地址:https://www.cnblogs.com/pyyu/p/8283418.html
时间: 2024-10-01 03:13:30