数据类型详解(布尔值、整型、浮点型、字符串等)-《Go语言实战指南》

Go语言是一门静态强类型语言,所有变量在编译时必须明确其数据类型。本章将详细介绍Go的基础数据类型,帮助你理解并正确使用它们。


一、数据类型分类总览

Go 的基础数据类型可以分为以下几类:

类型分类代表类型示例
布尔类型booltruefalse
整数类型intint8 等123-42
浮点类型float32float643.14-0.01
字符串类型string"hello"
字符类型rune'A''中'
无符号整数uintuint8 等2550
字节类型bytebyte('A')

二、布尔值(bool)

布尔类型只有两个值:true 和 false,常用于条件判断。

var flag bool = true
if flag {
    fmt.Println("flag 为真")
}

注意事项:

  • • 不能将布尔值与整数直接比较,如:if flag == 1 是非法的。
  • • 零值为 false

三、整型(int, int8, int16, int32, int64)

Go提供多种整型:

类型占用字节范围
int平台相关通常为32位或64位
int81字节-128 到 127
int162字节-32,768 到 32,767
int324字节-2,147,483,648 到 2,147,483,647
int648字节极大范围

无符号类型:uintuint8uint16uint32uint64

常见别名:

  • • byte 是 uint8
  • • rune 是 int32,常用于表示 Unicode 字符

示例:

var age int = 30
var score int16 = 256

四、浮点型(float32, float64)

Go支持两种浮点数类型:

类型精度范围
float32精度约7位
float64精度约15~16位(推荐)

默认浮点常量为 float64 类型。

示例:

var pi float64 = 3.14159
speed := 99.8

注意:

  • • 浮点数存在精度误差;
  • • 可用 math 包做数值运算(如 math.Sqrtmath.Pow 等)。

五、字符串(string)

字符串是UTF-8编码的不可变字节序列。

var name string = "Golang"
greet := "你好,世界"

常用操作:

fmt.Println(len(greet))        // 字节长度
fmt.Println(greet[0])          // 取第一个字节(不是字符)
fmt.Println(greet[0:6])        // 截取字节范围

字符串拼接:

s1 := "Hello"
s2 := "World"
s := s1 + " " + s2

使用反引号 `...` 可创建原样字符串(保留换行和空格):

msg := `这是
多行
文本`

六、字符(rune)

Go没有独立的 char 类型,字符使用 rune 表示(实际上是 int32):

var ch rune = '中'
fmt.Printf("%c, Unicode: %U\n", ch, ch)

使用场景:处理 Unicode 字符。


七、类型转换

Go中类型不会自动转换,必须显式转换:

var a int = 100
var b float64 = float64(a)

var c string = strconv.Itoa(a)  // int 转 string

导入 strconv 包后支持常见类型互转:

strconv.Atoi("123") // string -> int
strconv.ParseFloat("3.14", 64) // string -> float64

八、小结

  • • Go的数据类型强制、安全;
  • • 推荐使用 intfloat64stringbool 等默认类型;
  • • 字符串是不可变类型,处理字符时用 rune
  • • 类型之间必须显式转换,使用 strconv 进行字符串和数值转换。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值