前言基本数据类型 , 变量存的就是值,也叫值类型 。每一种数据都定义了明确的数据类型,在内存中分配了不同大小的内存空间 。
文章插图
Printf 和 Println 的区别
- printf 输出后不换行,println输出后自动换行;
- printf 格式化输出,println 直接输出内容
- Printf 根据format参数生成格式化的字符串并写入标准输出 。
- bit: 计算机中的最小存储单位
- byte: 计算机中基本存储单元
- 1byte = 8bit (一个字节8位)
文章插图
文章插图
文章插图
var i int8 = -129// constant -129 overflows int8var i2 uint8 = -129// constant -129 overflows uint8浮点类型 (默认值是0)
- float32
- float64(默认类型)
文章插图
浮点数 = 符号位 + 指数位 + 尾数位
浮点数都是有符号的
使用浮点类型的时候就需要注意存在丢失精度的问题
var num1 float32 = 12.556883123132 // 精度会丢失var num2 float64 = 12.556883123132 // 64位比32位精度要准确fmt.Println("num1=", num1, "num2", num2) // num1= 12.556883 num2 12.556883123132var num = 12.64fmt.Printf("num的类型", num) // num的类型%!(EXTRA float64=12.64)var num3 = 5.6e2 // 5.6 * 10^2 = 5.6 * 100 = 560fmt.Println("num3=", num3)字符型没有专门的字符型,使用byte来保存单个字母字符
ASCII码(128个)
- Go语言的字符使用UTF-8编码
- 英文字母:1个字节
- 汉字:3个字节
- 字符必须使用单引号括起来,双引号会报错
UTF-8是对ASCII的扩容
var str1 byte = 'a'var str2 byte = '0'// 当直接输出byte时,输出的使对应字符的ASCII码值(十进制)fmt.Println("str1", str1, "str2", str2) // str1 97 str2 48fmt.Printf("str1=%c str2=%c", str1, str2) // str1=a str2=0fmt.Printf("str1=%c", str1) // str1=afmt.Printf("str2=%c", str2) // str2=0var name byte = '吖'fmt.Printf("name=%c", name) // overflows byte 超出byte类型的存储范围了// 汉字更换成int类型var name int = '吖'fmt.Printf("name=%c", name) // name=吖var name1 int =22269fmt.Printf("name1=%c", name1) // name1=国// 数据类型只是为了定义存储空间的大小,对应计算机中的内存空间
文章插图
布尔型(bool)(默认值是false)用于逻辑运算,流程控制 。bool类型只占用一个字节的内存空间
var a = falsefmt.Println(a) // falsefmt.Println(unsafe.Sizeof(a)) // 1
推荐阅读
- 7_vue的数据代理,双向绑定
- 插拔式 Django之同时新增数据到两个数据库表与同时返回两个表的数据
- Vue中使用Switch开关用来控制商品的上架与下架情况、同时根据数据库商品的状态反应到前台、前台修改商品状态保存到数据库
- Hudi 数据湖的插入,更新,查询,分析操作示例
- linux安装达梦数据库8
- 2022年实时最新省市区县乡镇街道geojson行政边界数据获取方法
- 七 SpringBoot - Redis 缓存
- 怎么更改抖音动态壁纸设置类型(如何重新设置抖音动态壁纸)
- 未定事件簿数据勘验答案是什么
- Hadoop生态系统—数据仓库Hive的安装