解析 Go 编程语言数据类型:bool、整数、浮点数和字符串详细介绍

news/2024/11/29 12:47:35/

数据类型

数据类型是编程中的重要概念。数据类型指定了变量值的大小和类型。Go是静态类型的,这意味着一旦变量类型被定义,它只能存储该类型的数据。

基本数据类型

Go 有三种基本数据类型:

  • bool:表示布尔值,要么是true,要么是false。
  • 数值型:表示整数类型、浮点数值和复数类型。
  • string:表示字符串值。
示例

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

package main
import ("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 main
import ("fmt")func main() {var b1 bool = true // 有类型声明和初始值var b2 = true // 无类型声明但有初始值var b3 bool // 有类型声明但无初始值b4 := true // 无类型声明但有初始值fmt.Println(b1) // 输出 truefmt.Println(b2) // 输出 truefmt.Println(b3) // 输出 falsefmt.Println(b4) // 输出 true
}

Go整数数据类型

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

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

  • 有符号整数 - 可以存储正数和负数
  • 无符号整数 - 只能存储非负数

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

有符号整数

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

package main
import ("fmt")func main() {var x int = 500var y int = -4500fmt.Printf("类型: %T, 值: %v\n", x, x)fmt.Printf("类型: %T, 值: %v\n", y, y)
}

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

类型大小范围
int取决于平台:在32位系统中为 -2147483648 到 2147483647,
32位系统为32位,在64位系统中为 -9223372036854775808 到 9223372036854775807
64位系统为64位
int88位/1字节-128 到 127
int1616位/2字节-32768 到 32767
int3232位/4字节-2147483648 到 2147483647
int6464位/8字节-9223372036854775808 到 9223372036854775807
无符号整数

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

package main
import ("fmt")func main() {var x uint = 500var y uint = 4500fmt.Printf("类型: %T, 值: %v\n", x, x)fmt.Printf("类型: %T, 值: %v\n", y, y)
}

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

类型大小范围
uint取决于平台:在32位系统中为 0 到 4294967295,
32位系统为32位,在64位系统中为 0 到 18446744073709551615
64位系统为64位
uint88位/1字节0 到 255
uint1616位/2字节0 到 65535
uint3232位/4字节0 到 4294967295
uint6464位/8字节0 到 18446744073709551615

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

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

package main
import ("fmt")func main() {var x int8 = 1000fmt.Printf("类型: %T, 值: %v\n", 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 mainimport ("fmt"
)func main() {var x float32 = 123.78var y float32 = 3.4e+38fmt.Printf("类型:%T,值:%v\n", x, x)fmt.Printf("类型:%T,值:%v\n", y, y)
}
float64关键字

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

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

package mainimport ("fmt"
)func main() {var x float64 = 1.7e+308fmt.Printf("类型:%T,值:%v\n", x, x)
}

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

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

package mainimport ("fmt"
)func main() {var x float32 = 3.4e+39fmt.Println(x)
}

结果:

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

字符串数据类型

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

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

结果:

类型:string, 值:Hello!
类型:string, 值:
类型:string, 值:World 1

最后

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

微信公众号搜索:Let us Coding,关注后即可获取最新文章推送

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


http://www.ppmy.cn/news/1360237.html

相关文章

MySQL中的高级查询

通过条件查询可以查询到符合条件的数据,但如同要实现对字段的值进行计算、根据一个或多个字段对查询结果进行分组等操作时,就需要使用更高级的查询,MySQL提供了聚合函数、分组查询、排序查询、限量查询、内置函数以实现更复杂的查询需求。接下…

9-5 E. DS图—图非0面积

题目描述 编程计算由"1"围成的下列图形的面积。面积计算方法是统计"1"所围成的闭合曲线中"0"点的数目。如图所示,在10*10的二维数组中,"1"围住了15个点,因此面积为15。 提示:queue 输入 …

PostgreSQL与MySQL,谁更胜一筹

前言 PostgreSQL与MySQL都是优秀的开源数据库。在日常学习中,新手可能接触最多的是MySql,但是实际工作中,两者的应用场景其实都很广。我之前的做过上网流量销售业务,用的是MySQL,现在接触广告业务,用的是pg数据库,每天…

计算任意两个日期之间天数 Matlab

tdatetime(today);%get今天日期t12002-04-01;mdatenum(t1-t1) %做差后是hour,转化为天数参考 matlab日期函数

寒假学习总结

目录 一、引言 寒假时间学习大致进度 二、学习内容概述 三、学习成果与收获 学习成果具体展现: 1.深搜广搜 2.栈 3.队列 4.链表 5.动态规划 6.并查集 7.记忆化搜索 8.二叉树 9.图 10.堆 11.寒假部分收录完成题目(少数没有收录&#xff09…

《剑指Offer》笔记题解思路技巧优化_Part_6

《剑指Offer》笔记&题解&思路&技巧&优化_Part_6 😍😍😍 相知🙌🙌🙌 相识😢😢😢 开始刷题🟡1.LCR 168. 丑数—— 丑数🟢2. LCR 16…

信息学奥赛一本通1209:分数求和

1209:分数求和 时间限制: 1000 ms 内存限制: 65536 KB 提交数: 19111 通过数: 10647 【题目描述】 输入n个分数并对他们求和,并用最简形式表示。所谓最简形式是指:分子分母的最大公约数为11;若最终结果的分母为11&am…

力扣代码学习日记六

Problem: 66. 加一 思路 给定一个由 整数 组成的 非空 数组所表示的非负整数,在该数的基础上加一。 最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。 你可以假设除了整数 0 之外,这个整数不会以零开头。 示例 1: 输…