【从零开始学习Go语言】六.Go语言之数据类型标识符

【从零开始学习Go语言】六.Go语言之数据类型标识符


在这里插入图片描述

一.介绍

之前一章讲解了go的关键字,并且只有25个关键字,而这篇文章记录的是数据类型标识符,注意数据类型标识符也属于关键字(预声明标识符),不过25个关键字为定义go语言程序结构的而今天的是定义数据类型的,它们共有20个小伙伴:


二.数值类型:

2.1 整数
  • Byte

    byte是uint8的别名,是整型的特殊用例,占用的空间是int的四分之一,不常用,了解就好。

  • Int

    int为整形,取值范围根据系统决定,根据官方文档的定义是最小为32位,也就是x86架构或者x64/x86-64,关于架构的知识具体可自行百度

package main

import (
    "fmt"
    "math"
)

func main() {
    var a int = math.MaxInt64
    var b int = math.MinInt64
    fmt.Printf("最大值:%d,最小值: %d", a, b)
}

输出为:

最大值:9223372036854775807,最小值: -9223372036854775808
  • int8,int16,int32,int64

    这里就不用太过解释了吧,int8是占用8个字节也就是8个byte,只是占用的大小空间不同而已

  • uint,uint8,uint16,uint32,uint64

    unit与int类似,数值范围同样取决于cpu架构,不过最小值为0,可通过下面代码测试

package main

import (
    "fmt"
    "math"
)

func main() {

    var a int = math.MaxUint8
    fmt.Printf("最大值:%d", a
  • uintptr指针类型
2.2 浮点型
  • float32,float64

浮点型就是小数,float64的计算小数,范围的话小数点后多少位都可以,但计算精度就需要计算机去把握了,我没有实际去算过

2.3复数型
  • complex64,complex128

此处后续补充

2.4 字符和字符串型
  • string,rune

字符串不用太过解释吧。rune的基本类型是int32而string的基本类型是int8,单纯来说rune比string存储的内容更多,下面我们来看个例子:在这里插入图片描述
这里普及一下,golang的字符编码默认为utf-8,中文占用3个byte,空格也算占用,所以出现了如下的情况,那如何获得真实的字节数呢?

package main

import (
    "fmt"
    "reflect"
)

func main() {

    a := "hello 世界"
    str := []rune(a)                                //我们定义了一个切片,切片内容为a的内容
    fmt.Println(len(str))                           //8,这里可以看到我们得出了切片的数量,原理就是讲一个字符串放进切片中并得到他的切片数量。
    fmt.Println(reflect.TypeOf(str))                //[]int32这里可以看出确实是基于int32类型
}
2.5 接口型
  • error

    error本身是一个预定义好的借口,内置了一个方法(method),在这里不做过多讲解,之后会将

2.6.布尔型
  • bool

    这个布尔类型只有两个值,true与false,真或假,
    在这里插入图片描述

发布了17 篇原创文章 · 获赞 6 · 访问量 5万+

猜你喜欢

转载自blog.csdn.net/weixin_46192679/article/details/104908872