前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Go语言数据类型

Go语言数据类型

作者头像
leoay 技术
发布2023-06-12 14:40:26
1430
发布2023-06-12 14:40:26
举报
文章被收录于专栏:leoay 技术leoay 技术

leoay的第6篇文章

1234字

无论在什么语言中,数据类型主要用于声明或定义不同类型的变量、常量、函数等数据结构,当然在Go语言中也不例外。变量的类型主要目的是为了区分数据在内存中的存储大小。Go语言中的类型主要有以下几种分类:

序号

类型和描述

1

布尔型 布尔型的值只可以是常量 true 或者 false。一个简单的例子:var b bool = true。

2

数字类型 整型 int 和浮点型 float32、float64,Go 语言支持整型和浮点型数字,并且支持复数,其中位的运算采用补码。

3

字符串类型: 字符串就是一串固定长度的字符连接起来的字符序列。Go 的字符串是由单个字节连接起来的。Go 语言的字符串的字节使用 UTF-8 编码标识 Unicode 文本。

4

派生类型: 包括:(a)指针类型(Pointer); (b)数组类; (c)结构化类型(struct); (d)Channel 类型; (e)函数类型; (f)切片类型; (g)接口类(interface); (h)Map 类型

数字类型

对于数字类型,主要有以下几种(看到下面这些,用过C/C++的朋友应该比较亲切,因为很多时候,我们会将系统中的类型通过宏定义为下面这种简写的类型,想必设计Go语言的那些工程师也是处于这种考虑吧):

序号

类型和描述

1

uint8 无符号 8 位整型 (0 到 255)

2

uint16 无符号 16 位整型 (0 到 65535)

3

uint32 无符号 32 位整型 (0 到 4294967295)

4

uint64 无符号 64 位整型 (0 到 18446744073709551615)

5

int8 有符号 8 位整型 (-128 到 127)

6

int16 有符号 16 位整型 (-32768 到 32767)

7

int32 有符号 32 位整型 (-2147483648 到 2147483647)

8

int64 有符号 64 位整型 (-9223372036854775808 到 9223372036854775807)

浮点型

Go语言的浮点型除了有与其他语言中的浮点型类似的概念,还有复数的概念,如下表:

序号

类型和描述

1

float32 IEEE-754 32位浮点型数

2

float64 IEEE-754 64位浮点型数

3

complex64 32 位实数和虚数

4

complex128 64 位实数和虚数

对于复数的定义我们在这里简单提一下,后面再详细展开 我们都知道复数是由实部和虚部组成,在Go语言中复数有两种类型complex64和complex128, 默认的复数类型是complex128 我们看一下如何声明一个复数类型:

代码语言:javascript
复制
var name complex128 = complex(x, y)

上面,name是复数变量名,complex128为复数类型,complex则为Go语言中为复数赋值的函数,x、y 分别表示构成该复数的两个 float64 类型的数值,x 为实部,y 为虚部。上面的声明语句也可以写成:

代码语言:javascript
复制
name := complex(x, y)

对于一个复数z := complex(x, y),可以通过Go语言的内置函数real(z) 来获得该复数的实部,也就是 x;通过imag(z) 获得该复数的虚部,也就是 y。

【示例】使用内置的 complex 函数构建复数,并使用 real 和 imag 函数返回复数的实部和虚部:

代码语言:javascript
复制
var x complex128 = complex(1, 2) // 1+2i
var y complex128 = complex(3, 4) // 3+4i
fmt.Println(x*y)                 // "(-5+10i)"
fmt.Println(real(x*y))           // "-5"
fmt.Println(imag(x*y))           // "10"

复数也可以用==和!=进行相等比较,只有两个复数的实部和虚部都相等的时候它们才是相等的。

Go语言内置的 math/cmplx 包中提供了很多操作复数的公共方法,实际操作中建议大家使用复数默认的 complex128 类型,因为这些内置的包中都使用 complex128 类型作为参数。

今天的文章,就到这里,下一篇文章我们继续学习如何定义变量。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-09-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 leoay技术号 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 数字类型
  • 浮点型
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档