news 2026/7/14 15:04:16

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

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
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") }
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/14 15:02:01

统一时间序列模型:如何用UniTS处理多任务时间序列分析

统一时间序列模型:如何用UniTS处理多任务时间序列分析 【免费下载链接】UniTS A unified multi-task time series model. 项目地址: https://gitcode.com/gh_mirrors/uni/UniTS 在当今数据驱动的世界中,时间序列分析已经成为金融、医疗、物联网等…

作者头像 李华
网站建设 2026/7/14 15:01:29

西安酒吧扫码点单系统系统,桌台状态实时同步开发方案

西安酒吧扫码点单系统系统,桌台状态实时同步开发方案西安本地酒吧、清吧、酒水体验馆消费场景热闹,夜间高峰期客流集中、翻台速度快、多桌同时点单、加单、退单频次极高。和普通餐饮门店不同,酒吧消费具备灯光昏暗、服务员流动性大、顾客自助…

作者头像 李华
网站建设 2026/7/14 15:01:20

CuckooSQL高级配置:Shuffle压缩与算子替换的最佳实践

CuckooSQL高级配置:Shuffle压缩与算子替换的最佳实践 【免费下载链接】CuckooSQL A Spark SQL execution engine with vectorization optimization, which is used to replace the original execution engine of Spark SQL and provides higher performance. 项目…

作者头像 李华
网站建设 2026/7/14 15:01:12

Snap Hutao:三分钟掌握原神数据管理的智能工具箱

Snap Hutao:三分钟掌握原神数据管理的智能工具箱 【免费下载链接】Snap.Hutao 实用的开源多功能原神工具箱 🧰 / Multifunctional Open-Source Genshin Impact Toolkit 🧰 项目地址: https://gitcode.com/GitHub_Trending/sn/Snap.Hutao …

作者头像 李华