go 类型断言

article/2025/9/22 6:49:14

switch 语句

switch k {case 0:println("fallthrough")fallthrough/*Go的switch非常灵活,表达式不必是常量或整数,执行的过程从上至下,直到找到匹配项;而如果switch没有表达式,它会匹配true。Go里面switch默认相当于每个case最后带有break,匹配成功后不会自动向下执行其他case,而是跳出整个switch,但是可以使用fallthrough强制执行后面的case代码。*/case 1:fmt.Println("1")case 2:fmt.Println("2")default:fmt.Println("def")}

类型断言(Type Assertion)

类型断言(Type Assertion)是一个使用在接口值上的操作,用于检查接口类型变量所持有的值是否实现了期望的接口或者具体的类型。

在Go语言中类型断言的语法格式如下:
value, ok := x.(T)

其中,x 表示一个接口的类型,T 表示一个具体的类型(也可为接口类型)。
该断言表达式会返回 x 的值(也就是 value)和一个布尔值(也就是 ok),可根据该布尔值判断 x 是否为 T 类型:
在这里插入图片描述

func main() {var x interface{}switch i := x.(type) { // 带初始化语句case nil:fmt.Printf(" x 的类型 :%T\r\n", i)case int:fmt.Printf("x 是 int 型")case float64:fmt.Printf("x 是 float64 型")case func(int) float64:fmt.Printf("x 是 func(int) 型")case bool, string:fmt.Printf("x 是 bool 或 string 型")default:fmt.Printf("未知型")}

接口值

空接口可以存储任意类型的值,那我们如何获取其存储的具体数据呢?

一个接口的值(简称接口值)是由一个具体类型和具体类型的值两部分组成的。这两部分分别称为接口的动态类型和动态值。

var w io.Writer
w = os.Stdout
w = new(bytes.Buffer)
w = nil

在这里插入图片描述
想要判断空接口中的值这个时候就可以使用类型断言,其语法格式:

x.(T)

其中:

x:表示类型为interface{}的变量
T:表示断言x可能是的类型。

该语法返回两个参数,第一个参数是x转化为T类型后的变量,第二个值是一个布尔值,若为true则表示断言成功,为false则表示断言失败。

select

select 随机执行一个可运行的case。如果没有case可运行,它将阻塞,直到有case可运行。一个默认的子句应该总是可运行的。

超时判断

var resChan = make(chan int)
// do request
func test() {select {case data := <-resChan:doData(data)case <-time.After(time.Second * 3):fmt.Println("request time out")}
}

http://chatgpt.dhexx.cn/article/1F7gGXrD.shtml

相关文章

java断言是什么_Java断言

断言的概念 断言用于证明和测试程序的假设&#xff0c;比如“这里的值大于 5”。 断言可以在运行时从代码中完全删除&#xff0c;所以对代码的运行速度没有影响。 断言的使用 断言有两种方法&#xff1a;一种是 assert<> &#xff1b; 另一种是 assert<> &#xff…

C++ 断言

文章目录 前言assertstatic_assert 前言 断言(Assertion)是一种常用的编程手段&#xff0c;用于排除程序中不应该出现的逻辑错误。它是一种很好的Debug工具。其作用是判断表达式是否为真。C提供了assert和static_assert来进行断言。在C库中也有断言&#xff0c;其中断言与C的相…

SVA断言

目录 Assertion介绍什么是assertion&#xff1f;断言覆盖率断言语言的发展与进步类型划分立即断言并行断言并行断言的执行阶段assertion&#xff0c;property&#xff0c;sequencesequences sequence定义基本操作符号and操作符号intersect操作符号or操作符号first_match操作符号…

常见结构化存储系统架构

什么是结构化存储系统 结构化数据一般指存储在数据库中&#xff0c;具有一定逻辑结构和物理结构的数据&#xff0c;最为常见的是存储在关系数据库中的数据&#xff1b;非结构化数据&#xff1a;一般指结构化数据以外的数据&#xff0c;这些数据不存储在数据库中&#xff0c;而…

DRAM存储系统结构

这几天在学习DRAM存储结构的基本知识&#xff0c;为了更好地理解DRAM结构的基本知识&#xff0c;仔细阅读了Memory Systems Cache, DRAM, Disk这本书中第十章节的内容&#xff0c;并翻译了所述内容。为了方便以后查阅&#xff0c;把所做笔记记录一下。 DRAM存储系统结构 前几章…

第3章 Linux存储系统

三大基本存储架构(DAS,SAN,NAS) 直接附加的存储DAS:Linux 支持种类繁多的 DAS 界面&#xff0c;包括像并行高级技术附件的旧标准 — 电子集成驱动器 IDE/ATA — 并行 SCSI 和光纤通道以及新的存储界面&#xff0c;例如串行连接的 SCSI、串行 ATA 和外部 SATA 。您还将发现高级…

单机存储系统

单机存储引擎就是哈希表、B树等数据结构在机械磁盘和SSD等持久化介质上的实现。 单机存储系统是单机存储引擎的一种封装&#xff0c;对外提供文件、键值、表格或者关系模型&#xff0c;单机存储系统的理论来源于关系数据库。 哈希存储引擎是哈希表的持久化实现。 B树存储引…

存储系统和结构

很久没有在CSDN上面发文章了&#xff0c;最近复习机组的存储器&#xff0c;感慨自己这两年把知识都还给老师了&#xff0c;便做个笔记好好整理一下&#xff0c;也有了一些新收获。转载请注明来源&#xff1a;https://leerw.github.io 存储系统和结构 存储系统 将两个或来两…

存储系统 —— Cache(高速缓冲存储器)

本文主要介绍以下几方面的知识&#xff1a; Cache 的基本工作原理Cach和主存之间的映射方式Cache中主存块的替换算法Cache写策略 1.Cache的基本工作原理 存储系统存在的问题 局部性原理 (3)Cache 工作原理 性能分析 块地址形式 2.Cach和主存之间的映射方式 (1)全相联…

3-1存储系统-存储器概述主存储器

文章目录 一.存储器概述&#xff08;一&#xff09;存储器分类1.按在计算机中的作用&#xff08;层次&#xff09;分类2.按存储介质分类3.按存取方式分类4.按信息的可保存性分类 &#xff08;二&#xff09;存储器的性能指标 二.主存储器&#xff08;一&#xff09;基本组成1.译…

存储系统的层次结构

目录 一.背景二.层次结构&#xff08;1&#xff09;结构&#xff08;2&#xff09;原理&#xff08;3&#xff09;性能 一.背景 现在我们使用的计算机系统结构是冯诺依曼体系结构&#xff0c;它的一个特点就是中央处理器CPU&#xff08;控制器算数运算器&#xff09;与存储器相…

分布式存储Ceph存储系统RADOS

RADOS是Ceph最为关键的技术&#xff0c;它是一个完整的对象存储系统&#xff0c;所有存储在Ceph系统中的数据最终由这一层来存储。本文主要介绍RADOS的系统架构和IO处理流程&#xff0c;以了解Ceph存储的设计原理。 1、Ceph功能模块与RADOS Ceph存储系统的逻辑结构在“分布式系…

计算机存储系统

前言 何为存储系统&#xff1f; 存储系统是指计算机中由存放程序和数据的各种存储设备、控制部件及管理信息调度的设备&#xff08;硬件&#xff09;和算法&#xff08;软件&#xff09;所组成的系统。 为何需要存储系统&#xff1f; 信息是人类认知外界的方式&#xff0c;最初…

存储系统的概念

1.程序的局部性原理 统计表明, 无论是访问存取指令还是存储数据&#xff0c;在一个较短的时间间隔内&#xff0c;程序所访司的存储器地址在很大比例上集中在存储器地址空间的很小范围内。 这种在某一段时间内预繁访问某一局部的存储器地址空间、而对此范围以外的地址空间则很少…

存储系统-概念

概念 存储系统是计算机的重要组成部分之一。存储系统提供写入和读出计算机工作需要的信息&#xff08;程序和数据&#xff09;的能力&#xff0c;实现计算机的信息记忆功能。现代计算机系统中常采用寄存器、高速缓存、主存[内存]、外存[可以理解为磁盘,磁带等]的多级…

计算机组成原理——存储系统(超详细,必看!!)

本篇文章是对王道考研的2021计算机组成原理学习笔记&#xff0c;希望对大家有所帮助。 文章目录 三、存储系统3.1 基本概念1.存储器的层次结构2.存储器的分类3.存储器的性能指标 3.2主存储器3.2.1主存储器的基本组成3.2.2 随机存取存储器RAM1.存储元件不同导致的特性差异2.DRAM…

修改并保存hosts文件

文章目录 问题解决方法 问题 打开hosts文件发现无法修改或者修改后点击保存后是另存为 解决方法 首先找到hosts文件&#xff0c;文件在 C:\Windows\System32\drivers\etc 目录下 选择hosts文件右键选择属性 把属性中只读前面的对号去掉然后点击确定 然后就可以修改保存了

Win11修改hosts文件方法,Win11无法修改hosts解决方法

博主亲测有效&#xff01; 1.找到hosts文件的位置。 首先找到hosts文件&#xff0c;W11的host文件目录是c:\windows\system32\drivers\etc 2.修改hosts文件权限 选中hosts文件&#xff0c;右键选择属性&#xff0c;弹出属性窗口。 默认权限是只读状态&#xff0c;取消勾选。…

Windows下修改hosts文件

Windows下修改本地域名解析文件&#xff0c;原因你懂的&#xff0c;当然多数人选择修改这个应该都是选择最优或者较优的IP地址服务器进行访问。很多网站在运营商DNS服务器上的IP地址非常慢。 我们可以不做任何文件权限的修改&#xff0c;也不用蠢到删除用户之后只保留Admin用户…

win10如何修改hosts文件?

win10修改hosts文件的方法&#xff1a; 1、打开c盘&#xff0c;点击“Windows”&#xff0c;点击“system32”-“drivers”-“etc”&#xff0c;找到hosts文件&#xff1b; 2、修改hosts文件的权限 右键hosts文件&#xff0c;选择属性。 选择“安全”选项&#xff0c;点击ho…