Go语言基本数据类型有哪些

发布时间:2021-11-04 13:55:39 作者:iii
来源:亿速云 阅读:222

这篇文章主要介绍“Go语言基本数据类型有哪些”,在日常操作中,相信很多人在Go语言基本数据类型有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Go语言基本数据类型有哪些”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

  Go语言数据类型

  Go语言将数据类型分为四类:Basic Types(基础类型)、Aggregate Types (复合类型)、Reference Types (引用类型)、Interface Types (接口类型)。

  基础类型包括:数字、字符串和布尔型。布尔型的值只可以是常量 true 或者 false。数字类型支持整型和浮点型,并且支持复数,其中位的运算采用补码。

  复合数据类型包括:数组、结构体是通过组合简单类型,来表达更加复杂的数据结构。

  引用类型包括:指针、slice、map、 channel、接口和函数类型。当声明引用类型的变量时,创建的变量被称作标头(header)值。从技术细节上说,字符串也是一种引用类型。每个引用类型创建的标头值是包含一个指向底层数据结构的指针。每个引用类型还包含一组独特的字段,用于管理底层数据结构。因为标头值是为复制而设计的,所以永远不需要共享一个引用类型的值。标头值里包含一个指针,因此通过复制来传递一个引用类型的值的副本,本质上就是在共享底层数据结构。

  integers

  我们可以在程序中使用有符号或无符号整数,并可以指定所需的整数大小。我们为什么要指定您可能要求的大小,好吧,想象一下您正在尝试优化程序的内存利用率。如果您知道某个数字不会超过某个特定值,则可以选择一个适合该值的尺寸:

  我们可以通过键入 uint 或 int 在末尾附加int的大小来创建新的整数变量。如果我们想要一个8位无符号整数,那么它将看起来像 var myint uint8 这样。

  应该注意的是,如果您尝试为一个int分配一个比它可以处理的更大的值,即:

  var myint int8

  myint = 2500

  Go编译器将无法运行或构建程序,并且将输出2500溢出的事实 int8 。但是,如果要在运行时溢出整数,则可能会开始看到奇怪的结果。例如,尝试运行此程序并检查输出。

  类型转换

  当涉及使用具有不同数据类型的多个变量时,您通常会不得不将各种整数变量转换为 int 。这将处理从 uint8 和 int16 到标准32或64位有符号int的转换,从那里您将能够执行加法,乘法和减法。

  浮点数字

  它们有2个不同的大小,或者为 float32 , float64 并且使您可以处理标准 int64 数据类型中无法容纳的大量数据。浮点数的范围极限值可以在math包找到。常量 math.MaxFloat32 表示 float32 能表示的最大数值,大约是 3.4e38 ;对应的 math.MaxFloat64 常量大约是 1.8e308 。它们分别能表示的最小值近似为 1.4e-45 和 4.9e-324 。

  float32 IEEE-754 32位浮点型数。

  float64 IEEE-754 64位浮点型数。

  float 转换为 int。

  如果要将整数转换为浮点数或将浮点数转换为int,则可以通过将变量转换为所需的数据类型来实现。

  复数

  还有另一种通常被忽略的数字数据类型,即复数数据类型。这些与浮点数据类型非常相似,有两种不同的大小,您可以选择 complex64 或 complex128 。

  complex64 32 位实数和虚数。

  complex128 64 位实数和虚数。

  布尔

  让我们看看如何在我们的Go程序之一中使用它:

  var amazing bool

  amazing = true

  if amazing {

  subscribeToChannel()

  }

  如果我们想在程序中做一些布尔逻辑会怎样?好了,使用 || 和 && 运算符。

  常量

  常量是Go语言中我们最终的基本数据类型。它们使我们可以指定在程序执行过程中不会改变的不可变值。

  const meaningOfLife = 42

到此,关于“Go语言基本数据类型有哪些”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!

推荐阅读:
  1. PyTorch基本数据类型有哪些
  2. python有哪些基本数据类型

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

go语言

上一篇:Python、Node.js和Java语言处理的开源工具有哪些

下一篇:Java关键字和保留字是什么

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》