前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【从零开始学习Go语言】六.Go语言之数据类型标识符

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

作者头像
一只特立独行的兔先生
发布2020-04-02 09:59:53
3.8K0
发布2020-04-02 09:59:53
举报

【从零开始学习Go语言】六.Go语言之数据类型标识符
  • 一.介绍
  • 二.数值类型:
    • 2.1 整数
    • 2.2 浮点型
    • 2.3复数型
    • 2.4 字符和字符串型
    • 2.5 接口型
    • 2.6.布尔型


在这里插入图片描述
在这里插入图片描述

一.介绍

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


二.数值类型:

2.1 整数
  • Byte byte是uint8的别名,是整型的特殊用例,占用的空间是int的四分之一,不常用,了解就好。
  • Int int为整形,取值范围根据系统决定,根据官方文档的定义是最小为32位,也就是x86架构或者x64/x86-64,关于架构的知识具体可自行百度
代码语言:javascript
复制
package main

import (
    "fmt"
    "math"
)

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

输出为:

代码语言:javascript
复制
最大值:9223372036854775807,最小值: -9223372036854775808
  • int8,int16,int32,int64 这里就不用太过解释了吧,int8是占用8个字节也就是8个byte,只是占用的大小空间不同而已
  • uint,uint8,uint16,uint32,uint64 unit与int类似,数值范围同样取决于cpu架构,不过最小值为0,可通过下面代码测试
代码语言:javascript
复制
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,空格也算占用,所以出现了如下的情况,那如何获得真实的字节数呢?

代码语言:javascript
复制
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,真或假,
在这里插入图片描述
在这里插入图片描述
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 【从零开始学习Go语言】六.Go语言之数据类型标识符
  • 一.介绍
  • 二.数值类型:
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档