• go语言基础之基本数据类型


     视频学习地址:Go零基础入门_在线视频教程-CSDN程序员研修院

    一. 基本类型总结

     二. 位,字节和字

    1. 定义: 位、字节和字都是描述计算机数据单元或储存单元的术语,一般指储存单元
    2. 位(bit)是最小的储存单元,可储存0或1,是计算机内存的基本构建块
    3. 字节(byte)是常用的计算机储存单位,1字节=8位,8位就有256(2的8次方)种0、1的组合,即可0~255的整数或一组字符
    4. 字(word)是设计计算机时给定的自然储存单位,不同的电脑字长可能不同,对于8位的微型计算机,字长就是8位,32位计算机,1字=32位=4字节,64位计算机,1字=64位=8字节,现在的个人计算机通常都是64位,即 1字=64位。计算机字长越大,其数据转移就越快,允许的内存访问也更多。
    5. 8bit(位)=1Byte(字节)

    1024Byte(字节)=1KB

    1024KB=1MB

    1024MB=1GB

    1024GB=1TB

    1. 位与字节图示

     三. 整型

    int8、int16、int32、int64。在 内存中分别用 1、2、4、8 个字节来表达

    1. 整形类型

    具体类型

    取值范围

    int8

    -128到127

    uint8

    0到255

    int16

    -32768到32767

    uint16

    0到65535

    int32

    -2147483648到2147483647

    uint32

    0到4294967295

    int64

    -9223372036854775808到9223372036854775807

    uint64

    0到18446744073709551615

    uint

    与操作系统有关 32位的系统是uint32, 64位的是uint64

    int

    与操作系统有关 32位的系统是int32, 64位的是int64

    1. var a int8
    2. a = 129 // '129' (类型 untyped int) 不能由类型 int8 表示

    四.  浮点型

    1. float类型分为float32float64两种类型,这两种浮点型数据格式遵循 IEEE 754 标准。
    2. 单精度浮点数占用4个字节(32位)存储空间来存储一个浮点数。而双精度浮点数使用 8个字节(64位)存储空间来存储一个浮点数。
    3. 一个float32类型的浮点数可以提供大约6个十进制数的精度,而float64则可以提供约15或16个十进制数的精度
    4. 浮点类型默认声明为float64。
    1. // 单精度浮点型
    2. var f1 float32
    3. f1 = 1.1254869873248965478
    4. fmt.Println(f1, reflect.TypeOf(f1)) // 1.125487 float32
    5. // 双精度浮点型
    6. var f2 float64
    7. f2 = 1.1254869873248965478
    8. fmt.Println(f2, reflect.TypeOf(f2)) // 1.1254869873248965 float64
    9. // 默认64
    10. var f3 = 1.1254869873248965478
    11. fmt.Println(f3, reflect.TypeOf(f2)) // 1.1254869873248965 float64
    1. 科学计数表示
    1. var f1 = 2e8
    2. fmt.Println(f1, reflect.TypeOf(f1))
    3. var f2 = 2e-1
    4. fmt.Println(f2, reflect.TypeOf(f2))

    五.  布尔类型

    1. 定义:布尔型的值只可以是常量 true 或者 false。一个简单的例子:var b bool = true。
    1. var b bool
    2. b = true
    3. b = false
    4. fmt.Println(b)
    5. fmt.Println(1 == 1)
    6. fmt.Println(2 < 1)

    六.  字符串类型

    字符

    1. Golang中没有专门的字符类型,如果要存储单个字符(字母),一般使用byte来保存。
    1. // 字符
    2. var b byte
    3. b = 'a'
    4. fmt.Println(b) // 输出的是 ASCII码
    5. // 字符本质是一个数字, 可以进行加减乘除
    6. fmt.Println(b+1, reflect.TypeOf(b+1))

    字符串

    1. 字符串就是一串固定长度的字符连接起来的字符序列。Go 的字符串是由单个字节连接起来的。Go 语言的字符串的字节使用 UTF-8 编码标识 Unicode 文本。
    1. // 字符串
    2. var str string
    3. str = "hello go"
    4. fmt.Println(str)
    1. 字符串在内存中是一段连续存储空间

    1. 当你用 字符串[索引] 时 取到得到是字符 需要用 string(字符串[索引]) 转为 字符串
    1. // 字符串
    2. var str string
    3. str = "hello go"
    4. fmt.Println(string(str[0])) // h
    1. 字符串转为字符
    1. str1 := []rune(str)
    2. str1[0] = 'k'
    3. fmt.Println(str, string(str1))
    1. 带中文的字符串
    1. var str2 = "你好啊"
    2. // 截取有中文的字符串
    3. fmt.Println(string([]rune(str2)[0]))
    4. // len()获得的是 byte 字节的数量 一个中文占用3个字节
    5. fmt.Println(len(str2))
    6. // 有中文时 取长度
    7. fmt.Println(utf8.RuneCountInString(str2))
    8. fmt.Println(len([]rune(str2)))
  • 相关阅读:
    关于kafka-python的若干问题
    Mybatis与Mybatis-Plus(注解与Xml)(单表与多表)
    【饭谈】在学习测开网课之前,你的心脏需要武装一下
    Java开发从入门到精通(一):Kafka基础知识
    代码随想录训练营二刷第五十八天 | 583. 两个字符串的删除操作 72. 编辑距离
    WIN2012远程桌面授权过期
    持续测试简介
    217.存在重复元素
    Session&Cookie
    良心之作,7 个值得收藏的 GitHub 开源项目!
  • 原文地址:https://blog.csdn.net/wangyuiba1314/article/details/133808988