美文网首页
Go语言类型

Go语言类型

作者: LegendGo | 来源:发表于2019-08-17 23:36 被阅读0次

定义:

关键词var用于定义变量,和C不同,类型被放在变量类型的后面。

除了var 关键词外,也可以同通过简短模式进行关键词的赋值

常量:

常量表示在运行的时候恒定不可改变得值,常量值必须是编译期可确定的字符,字符串,数字或是布尔值,关键词为const

枚举:

Go没有明确意义上的enum的定义,不过可以借助iota标识符实现一组自增常量值来实现枚举类型

基本类型:

类型         长度       默认值           说明

bool         1            false

byte          1           0                     uint8

init,uint     4.8        0                     默认整数类型,依据目标平台,32或是64位

int8,uint8  1           0                      -128-127,0-255

int16,uint16  2       0                      -32,768-32,767 , 0-65,535

int32,uint32  4       0                       -21亿-21亿, 0-42亿

int64,uint64   8      0                       

float32           4      0.0

float64           8      0.0                        默认浮点型

complex64     8

complex128    16

rune                 4       0                        Unicode Code Point,int32

uintptr              4.8     0                        足以存储指针的uint

string                         ""                        默认为空字符串,而非NULL

array                                                     数组

struct                                                     结构体

function                      nil                      函数

interface                     nil                      接口

map                            nil                       字典  引用类型

slice                            nil                        切片,引用类型

channel                       nil                         通道,引用类型

引用类型:

所谓的引用类型,特指slice,map,channel 这三种预定义的类型,相比数字,数组等类型,引用类型拥有更为复杂的存储结构,除了分配内存外,还需要初始化一系列的属性,比如指针,长度,哈希分布,数据队列等。

内置函数new按照指定类型长度分配零值内存,返回指针,并不关心类型内部构造和初始化方式。而引用类型必须用make函数来创建,编辑器会将make转换为目标类型专用的创建函数,以确保完成全部内存分配和相关属性初始化。

当然通过 new函数也是为引用类型分配内存,但这是不完整的创建。以字典(map)为列,它只是分配了字典本身所需要的内存,并没有分配键值存储内存,所以没法工作使用。

类型转换:

除了常量,别名以及没有命名的类型外,Go强制要求使用显示的类型转换

如果转换类型是指针,单向通道或是没有返回值的函数类型,那么必须使用括号,避免造成语法分解错误

相关文章

  • 02-Go语言常量和变量

    Go语言的数据类型 C语言的数据类型 Go语言的数据类型 Go语言各数据类型占用内存空间 Go语言中也可以使用si...

  • 初识Go语言-1

    Go语言学习路径 初识Go语言 Go语言环境搭建与IDE安装 Go语言基础语法 Go语言数据类型 Go语言变量和常...

  • 04-Go语言常量和变量

    Go数据类型 C语言的数据类型image GO语言数据类型image GO数据类型占用的内存空间image 注意点...

  • 《GO语言圣经》读书笔记 第三章 基础数据类型

    Go语言将数据类型分为四类:** 基础类型、复合类型、引用类型和接口类型 ** 整型 Go语言的数值类型包括几种不...

  • Go语言类型转换

    类型转换 Go语言和C语言不一样,Go语言没有隐式转换,只有显示转换 格式和C语言一样 Go语言类型转换被用于转换...

  • 05-Go语言常量和变量-指趣学院

    Go语言数据类型 Go语言本质是用C语言编写的一套高级开发语言, 所以Go语言中的数据类型大部分都是由C语言演变而...

  • go语言指针类型的使用

    go语言的指针类型 简单地说go语言的指针类型和C/C++的指针类型用法是一样的,除了出去安全性的考虑,go语言增...

  • Go语言第3天 - 常用数据类型

    以下内容部分参考自Go语言基础数据类型Go语言中的数组切片:特立独行的可变数组Go语言数据类型-数组Go标准容器之...

  • go 语言第一节课(2)

    go 语言数据类型

  • Go语言学习笔记-变量与作用域

    Go 语言变量的声明 Go 语言是静态类型语言,因此变量 (variable) 是有明确类型的,编译器也会检查变量...

网友评论

      本文标题:Go语言类型

      本文链接:https://www.haomeiwen.com/subject/vzdhsctx.html