[Go] ok 判断 汇总
2024-10-14 11:02:37
1、判断 类型
类似于 JavaScript 中 typeof 和 Java 中 instanceof
var a interface{}
newA, ok := a.(string)
// 如果 ok 是 true,则说明 变量 a 是字符串类型,而 newA 就是 string 类型的变量,a 的实际值
//
2、判断 key 是否在 map 中
var nameList = map[string]string{"姓名": "李四", "性别": "男"}
name, ok := nameList["姓名"] // 假如 key 存在,则 ok = true,否则,ok = false
if ok {
fmt.Println(name)
}
3、判断 channel 是否 已关闭 且 没有数据
for {
x, ok := <-chantest
if !ok {
break // 通道 已关闭 且 没有数据,则跳出循环
}
}
温馨提示:
判断类型,还有另外一种方式:和 switch 结合
var v interface{}
// 省略了部分代码
// v = 8
// v = "wenjianbao" switch i := v.(type) {
case string:
fmt.Printf("The string is '%s'\n", i)
case int, uint, int8, uint8, int16, uint16, int32, uint32, int64, uint64:
fmt.Printf("The interger is %d\n", i)
default:
fmt.Printf("Unsupporte value.(type=%T)\n", i)
}
这里的 i := v.(type)
使经类型转换后的值得以保存。i 的类型一定会是 v 的值的实际类型。
详情:http://www.cnblogs.com/52php/p/6391537.html
最新文章
- 与你相遇好幸运,使用redis设置定时任务
- 使用php+swoole对client数据实时更新(上)
- QT笔记
- ASP.NET中Web DataGrid的使用指南
- Python 文件读和写
- Spark系列(五)Master主备切换机制
- poj 2349 Arctic Network
- java -D參数简化增加多个jar【简化设置classpath】
- UML九种图-包图、类图
- mysql 初始化时root无密码
- 初学c语言
- ssm中iReport报表使用json数据源过程体会
- 个人博客制作如何选择前端模板 thinkcmf后台加载新模板 CSS js文件
- Django用户继承AbstractUser后密码为明文
- Spring Boot 2 - 初识与新工程的创建
- XML 与 JSON大PK
- <;转载>; 从算法上解读自动驾驶是如何实现的?
- tomcat 绑定域名 防止恶意域名绑定
- Django 日志配置按日期滚动
- netty相关