首页/新闻资讯/正文详情

Go 空接口 type-switch 详解|any 和 interface {} 异同,非侵入式接口

发布时间:2026/9/27 21:55:59 来源:云帆数科 栏目:资讯中心
Go 空接口 type-switch 详解|any 和 interface {} 异同,非侵入式接口
前言空接口interface{}可以接收任意类型type switch 专门用来判断空接口内部保存的动态类型很多同学容易把它和类型断言混淆。一、type switch 完整案例题目要求编写 Describe 函数接收 any 类型参数判断底层类型并按格式输出。package main import fmt // any等价于interface{}可以接收任意类型数据 func Describe(v any) { // type switch固定语法专门获取接口变量里面的动态类型 switch val : v.(type) { case int: fmt.Printf(This is an integer with value %d.\n, val) case string: fmt.Printf(This is a string: %s.\n, val) case float64: fmt.Printf(This is a float with value %g.\n, val) default: fmt.Println(Unknown type!) } } func main() { Describe(100) Describe(hello go) Describe(3.14) Describe(true) }输出结果This is an integer with value 100. This is a string: hello go. This is a float with value 3.14. Unknown type!重要知识点v.(type)只能写在 switch 里面不能单独拿出来使用这是 type switch 专属语法。和类型断言v.(int)区分开。简答题 1Go 接口实现为什么是非侵入式Go 语言没有implements关键字不需要显式声明某个类型实现了某个接口。只要一个类型拥有接口定义的全部方法编译器会自动判定该类型实现了这个接口。 不需要修改原有结构体的代码去添加实现声明类型和接口之间没有强耦合所以称为非侵入式接口。简答题 2interface{}和 any 的异同相同点any本质就是interface{}的别名源码定义type any interface{}底层完全一样。 不同点any 是 Go1.18 引入泛型之后新增的别名主要用于泛型约束interface{}是传统写法多用于普通函数接收任意类型参数搭配 type switch、类型断言。运行时两者没有任何差别只是开发编码习惯不同。常见踩坑type switch 里面 case 写的是类型不是变量。空接口变量存储的包含两部分动态类型 动态值。非侵入式只关心方法集合不关心类型有没有声明实现接口。小结type switch 用于判断空接口存储的动态类型普通类型断言用于单独判断某一种类型。Go 接口隐式实现非侵入式不存在 implements 关键字。any 就是 interface {} 别名泛型场景推荐写 any普通场景两种写法都可以。

相关推荐

Windows 11 一键移除 AI 全家桶:RemoveWindowsAI 终极实操指南
Windows 11 一键移除 AI 全家桶:RemoveWindowsAI 终极实操指南

Windows 11 一键移除 AI 全家桶:RemoveWindowsAI 终极实操指南 【免费下载链接】RemoveWindowsAI Force Remove Copilot, Recall and More in Windows 11 项目地址: https://gitcode.com/GitHub_Trending/re/RemoveWindowsAI RemoveWindowsAI 是一个开源 Pow… · 2026/9/27 21:55:59

软件工程实践:用 TaoToken 统一 Key 打通 Git 提交与 Vue 单元测试的 JSON 配置
软件工程实践:用 TaoToken 统一 Key 打通 Git 提交与 Vue 单元测试的 JSON 配置

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/27 21:55:53

OpenCode CLI 初探:在 Windows Terminal 里用 npm 装好并配 TaoToken
OpenCode CLI 初探:在 Windows Terminal 里用 npm 装好并配 TaoToken

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/27 21:55:53

万字详解让大模型写出好代码:上下文窗口的工程化实践与 TaoToken 配置骨架
万字详解让大模型写出好代码:上下文窗口的工程化实践与 TaoToken 配置骨架

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/27 22:37:04

什么网站做私人空间好免费工具一文搞懂建站避坑
什么网站做私人空间好免费工具一文搞懂建站避坑

什么网站做私人空间好免费工具一文搞懂建站避坑 网站做好了没人访问,这种憋屈感谁做站谁懂。你熬夜调像素、改代码,结果上线一周后台访客只有你自己和几个蜘蛛。别急着骂平台算法,很多时候问题出在你压根没搞懂 什么网站做私人空间好… · 2026/9/27 22:37:04

前端重构总怕“改了这里乱了那里”?用 TaoToken 统一 Key 把 AI 工具串起来稳住阵脚
前端重构总怕“改了这里乱了那里”?用 TaoToken 统一 Key 把 AI 工具串起来稳住阵脚

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/27 22:37:04

Claude Code 用了 3 个月,我沉淀的 7 个科研提效技巧:从 CLAUDE.md 到 MCP 的 TaoToken 配置实践
Claude Code 用了 3 个月,我沉淀的 7 个科研提效技巧:从 CLAUDE.md 到 MCP 的 TaoToken 配置实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/27 22:37:04

GitHub开源项目日报 · 2026年2月17日 · 本期榜单热门开源精选与 TaoToken 配置骨架
GitHub开源项目日报 · 2026年2月17日 · 本期榜单热门开源精选与 TaoToken 配置骨架

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/27 22:37:04

市面上IP驱动产业新场景新工具
市面上IP驱动产业新场景新工具

开篇:定下基调当前IP数字化驱动实体产业转型升级已经成为行业共识,各类面向不同场景的IP运营工具层出不穷,但多数产品存在场景适配局限、权益分配不合理、落地支撑不足等问题。本次测评的核心目的是为不同经营需求的用户筛选出适配性强、可稳… · 2026/9/27 22:36:57

MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现
MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现

简介:这套Matlab仿真工具完整呈现雷达信号脉冲压缩过程,从线性调频(LFM)信号生成、目标回波仿真到匹配滤波压缩处理均有可运行代码支撑,面向电子信息工程、计算机、数学等专业学生,适用于课程设计、期末大作… · 2026/9/27 0:00:01

汕头网站建设制作厂家避坑指南:5大注意事项救急
汕头网站建设制作厂家避坑指南:5大注意事项救急

汕头网站建设制作厂家避坑指南:5大注意事项救急 改个需求建站公司拖一周,这种憋屈事我见得太多了。 很多汕头老板找本地建站团队,签合同前看着方案挺美,一上线就变脸。 今天不聊虚的,直接拆解找 汕头网站建设制作厂家 时的5个核心 注意事项… · 2026/9/27 0:00:01

多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习
多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习

简介:基于PyTorch的多模态虚假新闻检测项目完整代码包,面向自然语言处理与计算机视觉交叉方向的开发者、科研人员及毕业设计选题者,解决社交媒体中文本与图像联合识别虚假新闻的问题。系统以BERT预训练模型提取文本语义特征,以Res… · 2026/9/27 0:00:01

MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现
MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现

简介:这套Matlab仿真工具完整呈现雷达信号脉冲压缩过程,从线性调频(LFM)信号生成、目标回波仿真到匹配滤波压缩处理均有可运行代码支撑,面向电子信息工程、计算机、数学等专业学生,适用于课程设计、期末大作… · 2026/9/27 0:00:01

汕头网站建设制作厂家避坑指南:5大注意事项救急
汕头网站建设制作厂家避坑指南:5大注意事项救急

汕头网站建设制作厂家避坑指南:5大注意事项救急 改个需求建站公司拖一周,这种憋屈事我见得太多了。 很多汕头老板找本地建站团队,签合同前看着方案挺美,一上线就变脸。 今天不聊虚的,直接拆解找 汕头网站建设制作厂家 时的5个核心 注意事项… · 2026/9/27 0:00:01

多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习
多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习

简介:基于PyTorch的多模态虚假新闻检测项目完整代码包,面向自然语言处理与计算机视觉交叉方向的开发者、科研人员及毕业设计选题者,解决社交媒体中文本与图像联合识别虚假新闻的问题。系统以BERT预训练模型提取文本语义特征,以Res… · 2026/9/27 0:00:01

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码