您当前的位置:首页 > 电脑百科 > 程序开发 > 语言 > Go语言

Go基本数据类型

时间:2020-04-16 09:11:51  来源:  作者:

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 这样:

Go基本数据类型

 

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

var myint int8

myint = 2500

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

Go基本数据类型

 

类型转换

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

Go基本数据类型

 

浮点数字

它们有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,则可以通过将变量转换为所需的数据类型来实现。

Go基本数据类型

 

复数

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

complex64 32 位实数和虚数

complex128 64 位实数和虚数

布尔

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

var amazing bool  
amazing = true  
if amazing {  
   subscribeToChannel()   
}

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

Go基本数据类型

 

字符串

Go基本数据类型

 

常量

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

const meaningOfLife = 42


Tags:Go 数据类型   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
Go语言中给我们提供的所有基本数据类型,我们应该理解如何在自己的Go程序中使用这些类型。数据类型Go语言将数据类型分为四类:Basic Types(基础类型)、Aggregate Types (复合类型...【详细内容】
2020-04-16  Tags: Go 数据类型  点击:(62)  评论:(0)  加入收藏
▌简易百科推荐
zip 是一种常见的归档格式,本文讲解 Go 如何操作 zip。首先看看 zip 文件是如何工作的。以一个小文件为例:(类 Unix 系统下)$ cat hello.textHello!执行 zip 命令进行归档:$ zip...【详细内容】
2021-12-17  Go语言中文网    Tags:Go语言   点击:(13)  评论:(0)  加入收藏
大家好,我是 polarisxu。前段时间,Russ Cox 明确了泛型相关的事情,原计划在标准库中加入泛型相关的包,改放到 golang.org/x/exp 下。目前,Go 泛型的主要设计者 ianlancetaylor 完...【详细内容】
2021-11-30  Go语言中文网    Tags:slices 包   点击:(24)  评论:(0)  加入收藏
前言最近因为项目需要写了一段时间的 Go ,相对于 Java 来说语法简单同时又有着一些 Python 之类的语法糖,让人大呼”真香“。 但现阶段相对来说还是 Python 写的多一些,偶尔还...【详细内容】
2021-11-25  crossoverJie    Tags:Go   点击:(29)  评论:(0)  加入收藏
go-micro是基于 Go 语言用于开发的微服务的 RPC 框架,主要功能如下:服务发现,负载均衡 ,消息编码,请求/响应,Async Messaging,可插拔接口,最后这个功能牛p安装步骤安装proto...【详细内容】
2021-09-06    石老师小跟班  Tags:go-micro   点击:(197)  评论:(0)  加入收藏
GoLand 2021.2 EAP 5 现已发布。用户可以从工具箱应用程序中获得 EAP 构建,也可以从官方网站手动下载。并且从此 EAP 开始,只有拥有有效的 JetBrains 帐户才能加入该计划。手...【详细内容】
2021-06-29  IT实战联盟  今日头条  Tags:GoLand   点击:(185)  评论:(0)  加入收藏
作者:HDT3213今天给大家带来的开源项目是 Godis:一个用 Go 语言实现的 Redis 服务器。支持: 5 种数据结构(string、list、hash、set、sortedset) 自动过期(TTL) 发布订阅、地理位...【详细内容】
2021-06-18  HelloGitHub  今日头条  Tags:Go   点击:(125)  评论:(0)  加入收藏
统一规范篇合理规划目录本篇主要描述了公司内部同事都必须遵守的一些开发规矩,如统一开发空间,既使用统一的开发工具来保证代码最后的格式的统一,开发中对文件和代码长度的控制...【详细内容】
2021-05-18  1024课堂    Tags:Go语言   点击:(232)  评论:(0)  加入收藏
闭包概述 闭包不是Go语言独有的概念,在很多编程语言中都有闭包 闭包就是解决局部变量不能被外部访问的一种解决方案 是把函数当作返回值的一种应用 代码演示总体思想:在函数...【详细内容】
2021-05-14  HelloGo  今日头条  Tags:Go语言   点击:(223)  评论:(0)  加入收藏
一时想不开,想了解一下Go语言,于是安装了并体验了一下。下载1. 进入golang.google.cn 点击Download Go 2.选择对应的操作系统,点击后开始下载。 安装1. windows下执行傻瓜式安...【详细内容】
2021-05-12  程序员fearlazy  fearlazy  Tags:Go语言   点击:(236)  评论:(0)  加入收藏
1.简介channel是Go语言的一大特性,基于channel有很多值得探讨的问题,如 channel为什么是并发安全的? 同步通道和异步通道有啥区别? 通道为何会阻塞协程? 使用通道导致阻塞的协程...【详细内容】
2021-05-10  程序员麻辣烫  今日头条  Tags:Go通道   点击:(274)  评论:(0)  加入收藏
最新更新
栏目热门
栏目头条