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

最新文章

  1. 与你相遇好幸运,使用redis设置定时任务
  2. 使用php+swoole对client数据实时更新(上)
  3. QT笔记
  4. ASP.NET中Web DataGrid的使用指南
  5. Python 文件读和写
  6. Spark系列(五)Master主备切换机制
  7. poj 2349 Arctic Network
  8. java -D參数简化增加多个jar【简化设置classpath】
  9. UML九种图-包图、类图
  10. mysql 初始化时root无密码
  11. 初学c语言
  12. ssm中iReport报表使用json数据源过程体会
  13. 个人博客制作如何选择前端模板 thinkcmf后台加载新模板 CSS js文件
  14. Django用户继承AbstractUser后密码为明文
  15. Spring Boot 2 - 初识与新工程的创建
  16. XML 与 JSON大PK
  17. &lt;转载&gt; 从算法上解读自动驾驶是如何实现的?
  18. tomcat 绑定域名 防止恶意域名绑定
  19. Django 日志配置按日期滚动
  20. netty相关

热门文章

  1. 第10月第28天 touchesBegan hittest
  2. Project Euler Problem2
  3. centos7环境配置haproxy实现mysql数据库和redis代理服务器
  4. pandas 合并数据
  5. poj 1797 一条路径中的最小边 再找出最大的
  6. hdu 5011 nim博弈 (2014西安网赛E题)
  7. 【BZOJ】4361: isn
  8. 【LOJ】#2122. 「HEOI2015」小 Z 的房间
  9. spark sql中进行sechema合并
  10. JS代码浏览器兼容性 之 new Date()