【Go - 类型断言】

前提重点 :类型断言,先转换 ,再断言(判断是否转换成功)

Go语言中,类型断言用于将接口类型的变量转换为具体类型。类型断言的语法如下:

go 复制代码
value, ok := interfaceVariable.(ConcreteType)
  • interfaceVariable 是一个接口类型的变量。
  • ConcreteType 是你希望将接口变量转换成的具体类型。
  • value 是转换后的具体类型的值。
  • ok 是一个布尔值,表示类型断言是否成功。如果成功,oktrue,否则为 false

如果类型断言失败,okfalsevalue 将是具体类型的零值。

示例

以下是一个具体的例子,演示如何使用类型断言:

go 复制代码
package main

import (
	"fmt"
)

func main() {
	var i interface{} = "hello"

	// 类型断言,将接口类型变量 i 转换为字符串类型
	s, ok := i.(string)
	if ok {
		fmt.Println("String value:", s)
	} else {
		fmt.Println("Type assertion failed")
	}

	// 尝试将接口类型变量 i 转换为 int 类型
	n, ok := i.(int)
	if ok {
		fmt.Println("Integer value:", n)
	} else {
		fmt.Println("Type assertion failed")
	}
}

运行结果如下:

复制代码
String value: hello
Type assertion failed

第一个类型断言成功,因为 i 实际上是一个字符串。第二个类型断言失败,因为 i 不是一个整数。

相关推荐
盟接之桥18 分钟前
盟接之桥EDI软件:API数据采集模块深度解析,打造企业数据协同新引擎
java·运维·服务器·网络·数据库·人工智能·制造
苍何24 分钟前
豆包还能这么玩?附 13 大隐藏玩法,效率起飞(建议收藏)
后端
苍何26 分钟前
Kimi 版 OpenClaw 来了,5000+ Skills 随便用,确实给力!
后端
2501_9071368230 分钟前
离线工具箱 内含53个小工具
linux·服务器·网络
yzx99101338 分钟前
Python数据结构入门指南:从基础到实践
开发语言·数据结构·python
百锦再1 小时前
Jenkins 全面精通指南:从入门到脚本大师
运维·后端·python·servlet·django·flask·jenkins
衍生星球1 小时前
【JSP程序设计】Servlet对象 — page对象
java·开发语言·servlet·jsp·jsp程序设计
扶苏瑾1 小时前
线程安全问题的产生原因与解决方案
java·开发语言·jvm
珹洺1 小时前
Java-servlet(五)手把手教你利用Servlet配置HTML请求与相应
java·运维·服务器·前端·servlet·html·maven
forestsea1 小时前
优雅终结启动顺序噩梦:ObjectProvider —— Spring 4.3 开始引入
java·后端·spring