Go 语言基础(三)——基本数据类型
文章目录
- 数据类型
- 整数的各个类型
- 小数类型/浮点型
- 字符类型
- 使用细节
- 布尔类型
- String类型
- 字符串拼接
数据类型
int unint的大小与系统有关,整形默认声明int
Go在使用时遵保小不保大,尽量使用占用空间小的数据类型
查看占用空间用
unsafe.Sizeof()
Java 等其他语言将String归于引用数据类型,不属于基本数据类型,但Go语言里属于基本数据类型
var s int64 = 10fmt.Printf("n2的类型:%T, s占用字节数:%d", s, unsafe.Sizeof(s))
// %T 代表数据类型,%d代表整数
输出:
n2的类型:int64, s占用字节数:8
整数的各个类型
类型 | 有无符号 | 占用空间 | 范围 | 备注 |
---|---|---|---|---|
int8 | 有 | 1字节 | -128~127 | |
int16 | 有 | 2字节 | -215 ~215-1 | |
int32 | 有 | 4字节 | -231 ~231-1 | |
int64 | 有 | 8字节 | -263 ~263-1 | |
uint8 | 无 | 1字节 | 0~255 | |
uint16 | 无 | 2字节 | 0~216-1 | |
uint32 | 无 | 4字节 | 0~232-1 | |
uint64 | 无 | 8字节 | 0~264-1 | |
int | 有 |
32位系统:4字节 64位系统:8字节 |
32位系统:-231 ~231-1 64位系统:-263 ~263-1 |
|
uint | 无 |
32位系统:4字节 64位系统:8字节 |
32位系统:0~232-1 64位系统:0~264-1 |
|
rune | 有 | 与int32一样 | -231 ~231-1 | 等价int32,表示一个Unicode码 |
byte | 无 | 与uint8等价 | 0~255 | 存储字符时,选用byte |
小数类型/浮点型
- 浮点数的存放:符号位+指数位+尾数位
- 浮点数都是有符号的
- 浮点数可能会丢失尾数导致精度损失,因此若对值进行判断,一般不直接使用等号。
- Golang默认声明float64,存储空间不受操作系统位数影响
- 开发中推荐使用float64
类型 | 存储空间 | 表数范围 |
---|---|---|
float32 | 4字节 | -3.403E38~3.403E38 |
float64 | 8字节 | -1.798E308~1.798E308 |
字符类型
若要存储单个字符,一般用byte来保存
Go的字符串是由单个字节连接起来的,也就是说,Go的字符串是由字节构成的,与Java等不同。
- 如果要保存的字符属于ASCII表,则可以用byte直接保存
- 如果字符串对应的码值大于255,考虑用int类型保存
- 如果需要按照字符串的方式输出,则选择格式化输出,
fmt.Println("%c",n)
使用细节
- 字符常量是用单引号括起来的单个字符,如:
byte='a'
- Go语言允许使用转义字符,如:
var c3 char = '\n'
- Go语言字符使用UTF-8编码,英文占1字节,中文3字节
- Go语言中,字符的本质是一个整数,是该字符对应的UTF-8编码的值
- 可以直接个某一个变量赋值一个数字,格式化
%c
输出时,会输出该字符对应的Unicode字符 - 字符型可以进行运算,因为其本质就是一个整数。
- 字符串和其对应码值是规定好的字符编码表决定的
- Go语言的编码是UTF-8,因此基本没有中文乱码的问题。
func main() {var byte1 byte = 'a'var byte2 byte = 'b'fmt.Println(byte1)fmt.Println(byte2)fmt.Printf("byte1:%c,byte2:%c \n", byte1, byte2)fmt.Println(byte1 + byte2) //可以直接相加fmt.Printf("byte1+byte2=%c", byte1+byte2)
}
输出:
97
98
byte1:a,byte2:b
195
byte1+byte2=Ã
布尔类型
也叫bool类型,值仅有true和false
bool仅占一个字节
该类型主压要用于逻辑运算,一般用于流程控制
String类型
字符串就是一串固定长度的字符连接起来的字符序列,Go的字符串由单个字符连接起来,使用UTF-8标识Unicode文本
Go语言中字符串不可更改,即一旦复制,不允许再修改值的内容
字符串可以用
""
标识,该方式会识别转义字符字符串还可以用``表示,该方式会以字符串的原生形式进行输出,包括换行和特殊字符,可以实现防攻击、输出源码等形式
字符串拼接
var str = "hello"
str += " world"
当字符串很长时,需要用到多行字符串,此时需要把
+
号保留在上一行
str 4 := "hello "+ "world "+
" hello"+" world"
Go 语言基础(三)——基本数据类型相关推荐
- [GO语言基础] 三.变量声明、数据类型、标识符及编程练习12题
作为网络安全初学者,会遇到采用Go语言开发的恶意样本.因此从今天开始从零讲解Golang编程语言,一方面是督促自己不断前行且学习新知识:另一方面是分享与读者,希望大家一起进步.前文介绍了Go的编译运行 ...
- 谭浩强c语言第三章,谭浩强C语言第三章数据类型.ppt
谭浩强C语言第三章数据类型.ppt 第三章 数据类型 运算符与表达式 本章要点 数据的描述规则数据的操作规则 主要内容 3 1C的数据类型3 2常量与变量3 3整型数据3 4浮点型数据运行3 5字符型 ...
- C语言怎么定义001为int,C语言基础-01-基本数据类型
C语言的数据类型大致可以分为下图中的几类: 一.变量 跟其他语言一样,C语言中用变量来存储计算过程使用的值,任何变量都必须先定义类型再使用.为什么一定要先定义呢?因为变量的类型决定了变量占用的存储空间 ...
- c语言入门敲打,C语言基础三(敲打键盘、寻找资料,循环语句)
有人在学C语言或者其他语言的时候,大家都会说逻辑思维的硬道理,认为没有逻辑思维的人走不远,那么小编这里借助简单的if...else... 英文解释if(如果),else(否则) ----------- ...
- 前端基础(三)_JavaScript数据类型(基本数据类型、复杂数据类型)
一.数据类型分类 1.1.数据类型分类 JavaScript的数据类型为弱类型,即最开始的时候并不知道变量是什么类型,必须通过后面的值才能知道. JavaScript的数据类型分为简单数据类型(也称为 ...
- JSD-2204-Java语言基础-八大基本数据类型-Day02
1.变量:存数的 声明:---------在银行开个账户 int a; //声明一个整型的变量,名为a int b,c,d; //声明三个整型的变量,名为b,c,d //int a; //编译错误,变 ...
- go语言基础语法-容器数据类型-数组
文章目录 前言 一. 数组 1. 数组的语法和声明 2 语法 1)语法: 2. 数组的初始化 a) 先声明再赋值 (先声明在初始化) b) 声明并初始化 c) 不限长赋值 d) 索引赋值 3. 访问和 ...
- C语言基础1(数据类型、常变量、运算符、基本语句、选择结构、循环结构、数组、字符串、函数、指针)
数据类型及运算 数据类型 一.整形(int) 整形变量的定义.输入和输出 打印格式 含义 %d 输出一个有符号的10进制int类型 %o(字母o) 输出8进制的int类型 %x 输出16进制的int类 ...
- C语言基础知识【数据类型】
C 数据类型 1.在 C 语言中,数据类型指的是用于声明不同类型的变量或函数的一个广泛的系统.变量的类型决定了变量存储占用的空间,以及如何解释存储的位模式. 2.C 中的类型可分为以下几种: 序号 ...
- Go语言基础之基本数据类型
直接上代码 package mainimport ("fmt""math" )func main() {// 整型fmt.Println("===整型 ...
最新文章
- uc/os中对任务的总体理解
- mui app webview 沉浸式导航_AR实景导航 轻松找到网约车!高崎机场推出网约车专属上车区等便民举措...
- 代码检查规则:Python语言案例详解
- 自动化流程开源框架BotSharp
- JDK 13:什么是AggressiveOpts?
- vue data为什么是函数_由 Vue 中三个常见问题引发的深度思考
- Python类的私有属性、私有方法、类方法
- 计算机二级ms office有题库吗,计算机二级office题库-吃惊!二级MS Office高级应用通过率仅有21.07%!...
- Wise Force Deleter(电脑文件强制删除软件)官方中文版V1.5.3.54 | 支持强制删除超大文件夹
- c语言关于多边形的所有算法,教你如何在C语言中进行点在多边形内算法
- 两行命令开启QQ音乐服务,或者官方文档完整过程
- Postgresql - cursor介绍
- win10添加网络打印机_大神教你设置 win10系统安装打印机及驱动的详细方案 -win10使用教程...
- python正六边形的面积公式_六边形网格坐标的快速计算方法
- 用Python将excel表格按照列拆分为多个表格
- js,javascript中判断一个数是否是素数
- 长径比4.0金纳米棒直径4.2nm|长径比3.4金纳米棒直径10nm 长度34nm|长径比3.9金纳米棒直径10nm 长度39nm
- C++类和对象(中)
- 黑马程序员前端培训:高效的前端编程入门训练方法
- [题解]CF662D
热门文章
- 【BZOJ10561862】【codevs1985】排名系统,Splay+trie树
- 河南省初三计算机考试题库,河南省计算机等级考试—VB题库
- iic总线从机仲裁_IIC协议底层原理超详细解析!示波器,逻辑分析仪多图预警
- iphone保修期多久_小心!iPhone翻新机,黑机,妖机,1978机千万别买!
- 2017.3.4 wyd测试
- 愤怒的小鸟4只编外鸟_丽萨荐书 愤怒的小鸟 Angry Birds ICR #1
- Intel 64/x86_64/IA-32/x86处理器 - SIMD指令集 - SSE扩展(4) - 数据传输指令
- 高通android开源代码下载,高通平台Android源码bootloader分析之sbl1(三)
- 分形:MandelBrot和Julia
- php新闻列表排序,javascript 新闻列表排序简单封装