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)
}
相关文章
|
4月前
|
编译器 Go 调度
Go 中的类型断言与静态转换
Go 中的类型断言与静态转换
|
4月前
|
JSON 安全 前端开发
类型安全的 Go HTTP 请求
类型安全的 Go HTTP 请求
|
1月前
|
JSON 前端开发 JavaScript
聊聊 Go 语言中的 JSON 序列化与 js 前端交互类型失真问题
在Web开发中,后端与前端的数据交换常使用JSON格式,但JavaScript的数字类型仅能安全处理-2^53到2^53间的整数,超出此范围会导致精度丢失。本文通过Go语言的`encoding/json`包,介绍如何通过将大整数以字符串形式序列化和反序列化,有效解决这一问题,确保前后端数据交换的准确性。
38 4
|
1月前
|
Go
go语言常量的类型
【10月更文挑战第20天】
26 2
|
3月前
|
存储 Go
Go: struct 结构体类型和指针【学习笔记记录】
本文是Go语言中struct结构体类型和指针的学习笔记,包括结构体的定义、成员访问、使用匿名字段,以及指针变量的声明使用、指针数组定义使用和函数传参修改值的方法。
|
4月前
|
人工智能 JSON NoSQL
Go MongoDB Driver 中的 A D M E 类型是什么
Go MongoDB Driver 中的 A D M E 类型是什么
48 1
|
4月前
|
JSON 人工智能 编译器
Go json 能否解码到一个 interface 类型的值
Go json 能否解码到一个 interface 类型的值
36 1
|
4月前
|
Go
go 语言中的别名类型
go 语言中的别名类型
|
4月前
|
安全 Go
|
4月前
|
存储 安全 程序员