go类型断言类型转换

简介: go类型断言类型转换

类型断言

断言 在现代化 程序中 有助于 终止代码 , 防止 更大的 错误产生

package main
import "fmt"
func main() {
  var i interface{} = "hello"
  s := i.(string)
  fmt.Println(s)
  s, ok := i.(string)
  fmt.Println(s, ok)
  f, ok := i.(float64)
  fmt.Println(f, ok)
  f = i.(float64) // panic
  fmt.Println(f)
}

类型分支 根据 变量 类型进行分支

package main
import "fmt"
func do(i interface{}) {
  switch v := i.(type) {
  case int:
    fmt.Printf("Twice %v is %v\n", v, v*2)
  case string:
    fmt.Printf("%q is %v bytes long\n", v, len(v))
  default:
    fmt.Printf("I don't know about type %T!\n", v)
  }
}
func main() {
  do(21)
  do("hello")
  do(true)
}
相关文章
|
1月前
|
程序员 编译器 Serverless
掌握Go语言:解锁Go语言中的类型魔法,类型判断与转换的奇妙世界(9)
掌握Go语言:解锁Go语言中的类型魔法,类型判断与转换的奇妙世界(9)
|
1月前
|
自然语言处理 Go 索引
Go语言学习8-接口类型
【4月更文挑战第1天】本篇 Huazie 向大家介绍 Go 语言中的接口类型
21 2
Go语言学习8-接口类型
|
4月前
|
安全 Go 开发工具
Go语言学习6-字典类型
【1月更文挑战第7天】本篇 Huazie 介绍 Go语言中的字典类型
29 1
Go语言学习6-字典类型
|
4月前
|
Go 数据安全/隐私保护 索引
Go语言学习5-切片类型
【1月更文挑战第4天】本篇 Huazie 带大家了解 Go 语言的切片类型
39 2
Go语言学习5-切片类型
|
4月前
|
存储 设计模式 Cloud Native
云原生系列Go语言篇-类型、方法和接口 Part 1
通过前面章节的学习,我们知道Go是一种静态类型语言,包含有内置类型和用户定义类型。和大部分现代编程语言一样,Go允许我们对类型关联方法。它也具备类型抽象,可以编写没有显式实现的方法。
53 0
|
5天前
|
Cloud Native Go 云计算
多范式编程语言Go:并发与静态类型的结合
Go语言是Google于2007年开发的开源编程语言,旨在提高程序开发和部署的效率。它的独特特征在于结合了并发处理与静态类型系统,提供了简洁、高效、并行处理能力的编程体验。本文将探讨Go语言的特点、应用场景以及其在现代软件开发中的优势。
|
23天前
|
存储 安全 Java
Go语言学习10-指针类型
【4月更文挑战第11天】本篇 Huazie 向大家介绍 Go语言的指针类型
13 2
Go语言学习10-指针类型
|
27天前
|
存储 JSON 缓存
Go语言学习9-结构体类型
【4月更文挑战第8天】本篇 Huazie 向大家介绍 Go语言的接口类型
296 8
Go语言学习9-结构体类型
|
2月前
|
Go Windows
|
3月前
|
Java Go 数据安全/隐私保护
Go语言学习7-函数类型
本篇 Huazie 向大家介绍 Go 语言的函数类型
34 1
Go语言学习7-函数类型