Go 语言学习之基础数据类型

栏目: IT技术 · 发布时间: 1个月前

来源: mp.weixin.qq.com

内容简介:01整数类型

本文转载自:https://mp.weixin.qq.com/s/GKG3zmic_QJPQC0oBzRuyg,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有。

Go 语言学习之基础数据类型

01

整数类型

整数类型按照有/无符号划分,可分为有符号整数和无符号整数,二者按照大小划分,有 8 位、16 位、32 位和 64 位:

大小
有符号
无符号

此外,还有两种整数类型,分别是 int 和 uint,其大小与原生的有/无符号整数类型相同,都是 32 位或 64 位。

其中,int32 和 uint8 分别有类型别名是 rune 和 byte,二者可互换使用。需要注意的是,int 和 uint 都有别于大小明确的类型,也就是说,int 和 int32 是两种不同的类型,必须显示转换。

var a int

var b int32

var c rune

var d byte

var e uint8


func main() {

fmt.Printf("a=%d type:%T\n", a, a)

fmt.Printf("b=%d type:%T\n", b, b)

fmt.Printf("c=%d type:%T\n", c, c)

fmt.Printf("d=%d type:%T\n", d, d)

fmt.Printf("e=%d type:%T\n", e, e)


if c == b {

fmt.Println("rune 类型是 int32 的类型别名,二者可以互换使用")

}


if d == e {

fmt.Println("byte 类型是 uint8 的类型别名,二者可以互换使用")

}

}

02

浮点数类型

浮点数类型有两种,分别是 float32 和 float64,大多数情况下,建议优先使用 float64,因为 float32 的运算容易产生误差。

var f float32

var g float64


func main() {

fmt.Printf("f=%g type:%T\n", f, f)

fmt.Printf("g=%g type:%T\n", g, g)

}

03

布尔类型

bool 型的值只有两种可能,true 和 false,在 Go 语言中,bool 型的零值是 false,布尔值无法隐式转换成数值 0 或 1,反之亦然。

var h bool


func main() {

fmt.Printf("h=%t type:%T\n", h, h)

}

04

字符串类型

字符串是不可变的带双引号的字节序列,它可以包含任意数据,包括 0 值字节,不可变意味着多个字符串可以共享一块内存空间。

如图所示,同一块内存空间,包含字符串 s 、字符串 hello 和字符串 world。

Go 语言学习之基础数据类型

字符串操作:

  • len 函数

    内置的 len 函数返回字符串的字节数,并非字符的个数,UTF-8 的简体中文,一个字符占三个字节。

  • 下标访问字符

    通过下标访问字符串,可以得到第 i 个字符。

  • 子串生成

    子串生成操作 s[i:j] 产生一个新字符串,内容取自原字符串的字节,下标从 i (含边界值)开始,直到 j(不含边界值)。新字符串的大小是 j-i 个字节。

    需要注意的是,如果下标越界,或者 j 的值小于 i,将触发宕机异常。

    操作数 i 和 j 的默认值分别是 0 [字符串的起始位置]和 len(s) [字符串的终止位置],如果省略 i 或 j,或两者都省略,则取默认值。

  • 字符串连接

    加号(+)运算符连接两个字符串而生成一个新字符串。

var i string


func main() {

fmt.Printf("i=%s type:%T\n", i, i)

i = "hello golang"

fmt.Printf("字符串 i 的长度:%d\n", len(i))

fmt.Printf("字符串 i 的第一个字符:%c\n", i[0])

j := i[0:5]

fmt.Printf("子字符串 j 的值:%s\n", j)

k := i[5:]

fmt.Printf("子字符串 k 的值:%s\n", k)

l := i[:5]

fmt.Printf("子字符串 l 的值:%s\n", l)

m := i[:]

fmt.Printf("子字符串 m 的值:%s\n", m)

n := "hello "

o := "world"

p := n + o

fmt.Printf("连接字符串 p 的值:%s\n", p)

}

完整代码:

Go 语言学习之基础数据类型

输出结果:

a=0 type:int

b=0 type:int32

c=0 type:int32

d=0 type:uint8

e=0 type:uint8

f=0 type:float32

g=0 type:float64

h=false type:bool

i= type:string

rune 类型是 int32 的类型别名,二者可以互换使用

byte 类型是 uint8 的类型别名,二者可以互换使用

字符串 i 的长度:12

字符串 i 的第一个字符:h

子字符串 j 的值:hello

子字符串 k 的值:golang

子字符串 l 的值:hello

子字符串 m 的值:hello golang

连接字符串 p 的值:hello world

Go 语言学习之基础数据类型


以上所述就是小编给大家介绍的《Go 语言学习之基础数据类型》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

关注码农网公众号

关注我们,获取更多IT资讯^_^


为你推荐:

相关软件推荐:

查看所有标签

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Go语言学习笔记

Go语言学习笔记

雨痕 / 电子工业出版社 / 2016-6 / 89

作为时下流行的一种系统编程语言,Go 简单易学,性能很好,且支持各类主流平台。已有大量项目采用 Go 编写,这其中就包括 Docker 等明星作品,其开发和执行效率早已被证明。本书经四年多逐步完善,内容覆盖了语言、运行时、性能优化、工具链等各层面知识。且内容经大量读者反馈和校对,没有明显的缺陷和错误。上卷细致解析了语言规范相关细节,便于读者深入理解语言相关功能的使用方法和注意事项。下卷则对运行时源......一起来看看 《Go语言学习笔记》 这本书的介绍吧!

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具