Go的100天之旅-04基础数据类型
基础数据类型
在变量的定义中,我们讲了每个变量是有类型的,类型在计算机中是用来约束数据的解释。Go语言和其它计算机语言一样,提供丰富了丰富的数据类型,我们就来看看到底有哪些类型,同时也可以比较一下它和其它语言的区别。
整型
整型就是用来表示变量是整数的类型。和C
类似,Go
整型分为两个大类,无符号和有符号的,有符号简单来说就是能表示负数的类型,无符号就是这个类型没有正负号,统一表示整数。除了符号还有一点就是长度,因为符号和长度就决定了整型的范围。下面是Go
整型的分类:
类型 | 说明 | 范围 |
---|---|---|
int | 整型,长度和平台机器字节大小相关一般32或者64位 | 和字节码相关 |
uint | 无符号整型,长度和平台机器字节大小相关一般32或者64位 | 和字节码相关 |
int8 | 有符号8位整型 | -128 ~ 127 |
uint8 | 无符号8位整型 | 0 ~ 255 |
int16 | 有符号16位整型 | -32768 ~ 32767 |
uint16 | 无符号16位整型 | 0 ~ 65535 |
int32 | 有符号32位整型 | -2147483648 ~ 2147483647 |
uint32 | 无符号32位整型 | 0 ~ 4294967295 |
int64 | 有符号64位整型 | -9223372036854775808 ~ 9223372036854775807 |
uint64 | 无符号64位整型 | 0 ~ 18446744073709551615 |
浮点类型
Go
有两种浮点类型,float32
和float64
,它们都符合IEEE754
规范的定义。讲到浮点类型不得不提到的就是精度,float32
大概提供6位的精度误差,而float64
提供约15位的精度误差。
例如下面的代码:
package main
import "fmt"
func main() {
var i float32 = 10
var j float32 = 10.0000000001
var m float64 = 10
var n float64 = 10.0000000001
fmt.Println(i == j)
fmt.Println(m == n)
}
打印的是:
true
false
因此在平时的使用中需要注意精度的问题。除了直接用小数的形式,还可以用科学计数法,例如
var i float32 = 10e-2 // 0.01
布尔型
布尔类型一共有2种:true
和false
,通常用进行逻辑判断的
复数
复数在通常用的不是很多,在数学上的定义,复数有实部和虚部。Go
提供了两种精度的复数类型,complex64
和complex128
分别对应了float32
和float64
的精度。
var x complex128 = complex(1, 2) // 1+2i
var y complex128 = complex(3, 4) // 3+4i
i := 1 + 2i
j := 3 + 4i
上面是复数的写法,分别指定它们的实部和虚部就行了。复数也可以比较是否相等
i := 1 + 2i
j := 1 + 3i
fmt.Println(i == j)
但是必须实部和虚部都相同才为true
Go的100天之旅-04基础数据类型的更多相关文章
- 我的前端之旅--SeaJs基础和spm编译工具运用[图文]
标签:seajs nodejs npm spm js 1. 概述 本文章来源于本人在项目的实际应用中写下的记录.因初期在安装和使用Seajs和SPM的时候,有点不知所措的经历.为此,我 ...
- [译]Vulkan教程(04)基础代码
[译]Vulkan教程(04)基础代码 General structure 通用结构 In the previous chapter you've created a Vulkan project w ...
- Go的100天之旅-常量
常量 简介 道可道,非常道.这里常道指的永恒不变的道理,常有不变的意思.顾名思义和变量相比,常量在声明之后就不可改变,它的值是在编译期间就确定的. 下面简单的声明一个常量: const p int = ...
- (2.5)Mysql之SQL基础——数据类型
(2.5)Mysql之SQL基础——数据类型 关键词:mysql数据类型 目录: 一.整数型 二.小数型(以下均不能使用无符号) 三.日期时间型 四.字符串型 一.整数型 额外参数示例: int [( ...
- TypeScript学习指南第一章--基础数据类型(Basic Types)
基础数据类型(Basic Types) 为了搭建应用程序,我们需要使用一些基础数据类型比如:numbers,strings,structures,boolean等等. 在TypeScript中除了Ja ...
- 二、Windows基础数据类型
六.Windows Data Types 简介: 6.1.这些数据类型都是C语言数据类型的再次的进行包装. 6.2.因为考虑到如果使用的是C中的基础数据类型可能无法表示,想表示的精准的含义. 6.3. ...
- java.lang基础数据类型boolean、char、byte、short、int、long、float、double (JDK1.8)
java.lang.Boolean public static int hashCode(boolean value) { return value ? 1231 : 1237; } JDK 1.8新 ...
- python基础二(基础数据类型)
一. 引子 1. 什么是数据 x=10,10是我们要存储的数据 2. 为何数据要分不同的类型 数据是用来表示状态的,不同的状态就应该用不同的类型的数据去表示 3.数据类型 数字 字符串 列表 元组 字 ...
- python的学习笔记01_4基础数据类型列表 元组 字典 集合 其他其他(for,enumerate,range)
列表 定义:[]内以逗号分隔,按照索引,存放各种数据类型,每个位置代表一个元素 特性: 1.可存放多个值 2.可修改指定索引位置对应的值,可变 3.按照从左到右的顺序定义列表元素,下标从0开始顺序访问 ...
随机推荐
- uiautomatorviewer 截取手机屏幕报错
1. 解决办法: 1.在e盘新建一个文件夹,命名为app.uix 2.打开cmd命令,输入命令adb pull /sdcard/app.uix E:/app.uix 3.打开uiautomatorvi ...
- 学习Linux必须掌握的一个知识-i节点
linux文件系统是Linux系统的心脏部分,提供了层次结构的目录和文件.文件系统将磁盘空间划分为每1024个字节一组,称为块(也有用512字节为一块的,如:SCOXENIX).编号从0到整个磁盘的最 ...
- 我从LongAdder中窥探到了高并发的秘籍,上面只写了两个字...
这是why的第 53 篇原创文章 荒腔走板 大家好,我是why. 时间过的真是快,一周又要结束了.那么,你比上周更博学了吗?先来一个简短的荒腔走板,给冰冷的技术文注入一丝色彩. 上面这图是我之前拼的一 ...
- Python3-queue模块-同步队列
Python3中的queue模块实现多生产者,多消费者队列,特别适用于多个线程间的信息的安全交换,主要有三个类 queue.Queue(maxsize=0) 构造一个FIFO(先进先出)的队列 que ...
- vue全家桶(2.1)
3.路由切换 3.1.vue-router路由切换 3.1.1.什么是前端路由 路由这个概念最先是后端出现的,发送不同的请求,后端根据请求的不同返回不同的资源,这个时候的url是和后端交互的,需要在后 ...
- ajax前后端交互原理(6)
6.XMLHttpRequest对象 XMLHttpRequest 是一个 API,它为客户端提供了在客户端和服务器之间传输数据的功能.它提供了一个通过 URL 来获取数据的简单方式,并且不会使整个页 ...
- 在Github上建立自己的个人主页
目录 注册Github账号 登录Github账号 建立新仓库 选择个人主页的主题 注册Github账号 首先打开Github的主页(https://github.com/),点击右上角的sign up ...
- div嵌套引起的内层margin-top对外层div起作用
嵌套div中margin-top转移问题的解决办法在这两个浏览器中,有两个嵌套关系的div,如果外层div的父元素padding值为0,那么内层div的margin-top或者margin-botto ...
- 数据解析_bs进行数据解析
1.bs4进行数据解析 数据解析的原理 1.标签定位 2.提取标签,标签属性中存储的数据值 bs4数据解析的原理 1.实例化一个BeautifulSoup对象,并且将页面源码数据加载到该对象中 2.通 ...
- 第 11 篇:基于 drf-haystack 的文章搜索接口
作者:HelloGitHub-追梦人物 在 django 博客教程中,我们使用了 django-haystack 和 Elasticsearch 进行文章内容的搜索.django-haystack 默 ...