文章目录

  • 数据类型
    • 整数的各个类型
    • 小数类型/浮点型
    • 字符类型
      • 使用细节
    • 布尔类型
    • 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 语言基础(三)——基本数据类型相关推荐

  1. [GO语言基础] 三.变量声明、数据类型、标识符及编程练习12题

    作为网络安全初学者,会遇到采用Go语言开发的恶意样本.因此从今天开始从零讲解Golang编程语言,一方面是督促自己不断前行且学习新知识:另一方面是分享与读者,希望大家一起进步.前文介绍了Go的编译运行 ...

  2. 谭浩强c语言第三章,谭浩强C语言第三章数据类型.ppt

    谭浩强C语言第三章数据类型.ppt 第三章 数据类型 运算符与表达式 本章要点 数据的描述规则数据的操作规则 主要内容 3 1C的数据类型3 2常量与变量3 3整型数据3 4浮点型数据运行3 5字符型 ...

  3. C语言怎么定义001为int,C语言基础-01-基本数据类型

    C语言的数据类型大致可以分为下图中的几类: 一.变量 跟其他语言一样,C语言中用变量来存储计算过程使用的值,任何变量都必须先定义类型再使用.为什么一定要先定义呢?因为变量的类型决定了变量占用的存储空间 ...

  4. c语言入门敲打,C语言基础三(敲打键盘、寻找资料,循环语句)

    有人在学C语言或者其他语言的时候,大家都会说逻辑思维的硬道理,认为没有逻辑思维的人走不远,那么小编这里借助简单的if...else... 英文解释if(如果),else(否则) ----------- ...

  5. 前端基础(三)_JavaScript数据类型(基本数据类型、复杂数据类型)

    一.数据类型分类 1.1.数据类型分类 JavaScript的数据类型为弱类型,即最开始的时候并不知道变量是什么类型,必须通过后面的值才能知道. JavaScript的数据类型分为简单数据类型(也称为 ...

  6. JSD-2204-Java语言基础-八大基本数据类型-Day02

    1.变量:存数的 声明:---------在银行开个账户 int a; //声明一个整型的变量,名为a int b,c,d; //声明三个整型的变量,名为b,c,d //int a; //编译错误,变 ...

  7. go语言基础语法-容器数据类型-数组

    文章目录 前言 一. 数组 1. 数组的语法和声明 2 语法 1)语法: 2. 数组的初始化 a) 先声明再赋值 (先声明在初始化) b) 声明并初始化 c) 不限长赋值 d) 索引赋值 3. 访问和 ...

  8. C语言基础1(数据类型、常变量、运算符、基本语句、选择结构、循环结构、数组、字符串、函数、指针)

    数据类型及运算 数据类型 一.整形(int) 整形变量的定义.输入和输出 打印格式 含义 %d 输出一个有符号的10进制int类型 %o(字母o) 输出8进制的int类型 %x 输出16进制的int类 ...

  9. C语言基础知识【数据类型】

    C 数据类型 1.在 C 语言中,数据类型指的是用于声明不同类型的变量或函数的一个广泛的系统.变量的类型决定了变量存储占用的空间,以及如何解释存储的位模式. 2.C 中的类型可分为以下几种: 序号   ...

  10. Go语言基础之基本数据类型

    直接上代码 package mainimport ("fmt""math" )func main() {// 整型fmt.Println("===整型 ...

最新文章

  1. uc/os中对任务的总体理解
  2. mui app webview 沉浸式导航_AR实景导航 轻松找到网约车!高崎机场推出网约车专属上车区等便民举措...
  3. 代码检查规则:Python语言案例详解
  4. 自动化流程开源框架BotSharp
  5. JDK 13:什么是AggressiveOpts?
  6. vue data为什么是函数_由 Vue 中三个常见问题引发的深度思考
  7. Python类的私有属性、私有方法、类方法
  8. 计算机二级ms office有题库吗,计算机二级office题库-吃惊!二级MS Office高级应用通过率仅有21.07%!...
  9. Wise Force Deleter(电脑文件强制删除软件)官方中文版V1.5.3.54 | 支持强制删除超大文件夹
  10. c语言关于多边形的所有算法,教你如何在C语言中进行点在多边形内算法
  11. 两行命令开启QQ音乐服务,或者官方文档完整过程
  12. Postgresql - cursor介绍
  13. win10添加网络打印机_大神教你设置 win10系统安装打印机及驱动的详细方案 -win10使用教程...
  14. python正六边形的面积公式_六边形网格坐标的快速计算方法
  15. 用Python将excel表格按照列拆分为多个表格
  16. js,javascript中判断一个数是否是素数
  17. 长径比4.0金纳米棒直径4.2nm|长径比3.4金纳米棒直径10nm 长度34nm|长径比3.9金纳米棒直径10nm 长度39nm
  18. C++类和对象(中)
  19. 黑马程序员前端培训:高效的前端编程入门训练方法
  20. [题解]CF662D

热门文章

  1. 【BZOJ10561862】【codevs1985】排名系统,Splay+trie树
  2. 河南省初三计算机考试题库,河南省计算机等级考试—VB题库
  3. iic总线从机仲裁_IIC协议底层原理超详细解析!示波器,逻辑分析仪多图预警
  4. iphone保修期多久_小心!iPhone翻新机,黑机,妖机,1978机千万别买!
  5. 2017.3.4 wyd测试
  6. 愤怒的小鸟4只编外鸟_丽萨荐书 愤怒的小鸟 Angry Birds ICR #1
  7. Intel 64/x86_64/IA-32/x86处理器 - SIMD指令集 - SSE扩展(4) - 数据传输指令
  8. 高通android开源代码下载,高通平台Android源码bootloader分析之sbl1(三)
  9. 分形:MandelBrot和Julia
  10. php新闻列表排序,javascript 新闻列表排序简单封装