写点什么

Go 数据类型

作者:小万哥
  • 2023-08-29
    广东
  • 本文字数:1853 字

    阅读完需:约 6 分钟

Go 数据类型

数据类型是编程中的重要概念。数据类型指定了变量值的大小和类型。


Go 是静态类型的,这意味着一旦变量类型被定义,它只能存储该类型的数据。


Go 有三种基本数据类型:


  • bool:表示布尔值,要么是 true,要么是 false。

  • 数值型:表示整数类型、浮点数值和复数类型。

  • string:表示字符串值。


示例


以下示例展示了 Go 中的一些不同数据类型:


package mainimport ("fmt")
func main() { var a bool = true // 布尔值 var b int = 5 // 整数 var c float32 = 3.14 // 浮点数 var d string = "Hi!" // 字符串
fmt.Println("布尔值: ", a) fmt.Println("整数: ", b) fmt.Println("浮点数: ", c) fmt.Println("字符串: ", d)}
复制代码

布尔数据类型

布尔数据类型使用 bool 关键字声明,只能取值 true 或 false。


布尔数据类型的默认值是 false。


示例


以下示例展示了声明布尔变量的不同方式:


package mainimport ("fmt")
func main() { var b1 bool = true // 有类型声明和初始值 var b2 = true // 无类型声明但有初始值 var b3 bool // 有类型声明但无初始值 b4 := true // 无类型声明但有初始值
fmt.Println(b1) // 输出 true fmt.Println(b2) // 输出 true fmt.Println(b3) // 输出 false fmt.Println(b4) // 输出 true}
复制代码

Go 整数数据类型

整数数据类型用于存储没有小数点的整数,例如 35、-50 或 1345000。


整数数据类型有两个类别:


  • 有符号整数 - 可以存储正数和负数

  • 无符号整数 - 只能存储非负数


提示:整数的默认类型是 int。如果不指定类型,类型将为 int。

有符号整数

使用 int 关键字声明的有符号整数可以存储正数和负数:


示例


package mainimport ("fmt")
func main() { var x int = 500 var y int = -4500 fmt.Printf("类型: %T, 值: %v", x, x) fmt.Printf("类型: %T, 值: %v", y, y)}
复制代码


Go 有五个有符号整数的关键字/类型:


无符号整数

使用 uint 关键字声明的无符号整数只能存储非负数:


示例


package mainimport ("fmt")
func main() { var x uint = 500 var y uint = 4500 fmt.Printf("类型: %T, 值: %v", x, x) fmt.Printf("类型: %T, 值: %v", y, y)}
复制代码


Go 有五个无符号整数的关键字/类型:



选择整数类型取决于变量需要存储的值。


示例


以下示例会导致错误,因为 1000 超出了 int8 的范围(范围是从-128 到 127):


package mainimport ("fmt")
func main() { var x int8 = 1000 fmt.Printf("类型: %T, 值: %v", x, x)}
复制代码


结果:


./prog.go:5:7: constant 1000 overflows int8

Go 浮点数数据类型

浮点数数据类型用于存储带有小数点的正数和负数,例如 35.3、-2.34 或 3597.34987。


浮点数数据类型有两个关键字:


类型 大小 范围


  • float32 32 位 -3.4e+38 到 3.4e+38。

  • float64 64 位 -1.7e+308 到 +1.7e+308。


提示:浮点数的默认类型是 float64。如果不指定类型,类型将为 float64。

float32 关键字

示例


以下示例展示了如何声明一些 float32 类型的变量:


package main
import ( "fmt")
func main() { var x float32 = 123.78 var y float32 = 3.4e+38 fmt.Printf("类型:%T,值:%v\n", x, x) fmt.Printf("类型:%T,值:%v", y, y)}
复制代码

float64 关键字

与 float32 相比,float64 数据类型可以存储更大范围的数字。


示例


以下示例展示了如何声明一个 float64 类型的变量:


package main
import ( "fmt")
func main() { var x float64 = 1.7e+308 fmt.Printf("类型:%T,值:%v", x, x)}
复制代码


选择使用哪种浮点类型取决于变量需要存储的值。


示例


以下示例会导致错误,因为 3.4e+39 超出了 float32 的范围:


package main
import ( "fmt")
func main() { var x float32 = 3.4e+39 fmt.Println(x)}
复制代码


结果:


./prog.go:5:7: constant 3.4e+39 overflows float32

字符串数据类型

字符串数据类型用于存储字符序列(文本)。字符串值必须用双引号括起来:


示例


package main
import ( "fmt")
func main() { var txt1 string = "Hello!" var txt2 string txt3 := "World 1"
fmt.Printf("类型:%T,值:%v\n", txt1, txt1) fmt.Printf("类型:%T,值:%v\n", txt2, txt2) fmt.Printf("类型:%T,值:%v\n", txt3, txt3)}
复制代码


结果:


Type: string, value: Hello! Type: string, value: Type: string, value: World 1

最后

为了方便其他设备和平台的小伙伴观看往期文章,链接奉上:


公众号搜索Let us Coding知乎开源中国CSDN思否掘金InfoQ简书博客园慕课51CTOhelloworld腾讯开发者社区阿里开发者社区


看完如果觉得有帮助,欢迎点赞、收藏关注

发布于: 刚刚阅读数: 4
用户头像

小万哥

关注

代码如人生 2023-02-09 加入

编程爱好者

评论

发布
暂无评论
Go 数据类型_Go_小万哥_InfoQ写作社区