go 接口interface func (m Market) getName() string {

发布时间:2026/7/14 15:04:19

go 接口interface func (m Market) getName() string { 跟Java不同点1. struct 实现 interface并没有明显的实现写法各写各的2. struct 可以实现部分interface的方法而不必要全部实现。直接用没问题用interface进行引用就报错示例代码// 包路径 package main import fmt // 接口有两个方法 type Animal interface { call() getName() string } // 创建类Market有一个name熟悉 type Market struct { name string } /** 实现方法 1. (m Market) 标识 这个是Market类的方法 2. call() 接口的方法 */ func (m Market) call() { fmt.Println(market call,, name:, m.name) } func (m Market) getName() string { return m.name } type Tiger struct { name string } func (t Tiger) call() { fmt.Println(tiger call,, name:, t.name) } func (t Tiger) getName() string { return t.name } func animalCall(a Animal) { a.call() } // 空接口可以接受任何类型的对象并根据类型判断 func print(v interface{}) { switch t : v.(type) { case int: fmt.Println(integer, t) case string: fmt.Println(string, t) } } // main方法 func main() { // 接口 interface m1 : Market{name: m111} fmt.Println(m1.getName()) m1.call() m2 : new(Market) m2.name m222 m2.call() t1 : Tiger{name: t1111} fmt.Println(t1.getName()) t1.call() // 根据传值的不同 animalCall(m1) animalCall(t1) // 定义一个接口然后复制类对象按照接口调用就可以 var a1 Animal a1 m1 a1.call() // 将m1转换为 Market类型 m11 : a1.(Market) fmt.Println(m11.name) // 空接口接受人任何对象 print(11) print(str11) }

相关新闻