[TOC]前言一、概述结构体(struct) 是一种聚合的数据类型,是由零个或多个任意类型的值聚合成的实体。每个值称为结构体的成员。学过 C 或 C++ 的人都知道结构体,但在 Go 中,没有像 C++ 中的 class 类的概念,只有 struct 结构体的概念,所以也没有继承。结构体成员也可以称为“字段”,这些字段有以下特性:字段拥有自己的类型和值;字段名必须唯一;字段的类型也可以是结构...
[TOC]前言一、概述指针也是一种类型,也可以创建变量,称之为指针变量。指针变量的类型为 *Type,该指针指向一个 Type 类型的变量。指针变量最大的特点就是存储的某个实际变量的内存地址,通过记录某个变量的地址,从而间接的操作该变量。比如,想把"100"这个数写入程序中作为一个变量,程序一启动将数字"100"加载到内存当中,假设内存地址是0x0201),在程序中将数字"100"赋值给变量...
[TOC]前言一、概念Go语言中提供的映射关系容器为map,其内部使用散列表(hash)实现。map是一种无序的基于key-value的数据结构,Go语言中的map是引用类型,必须初始化才能使用。所有可比较的类型,如 整型 ,字符串 等,都可以作为 key 。二、map定义2.1 声明方式map 是引用类型,可以使用如下方式声明:var mapname map[keytype]valuety...
[TOC]前言一、切片不能直接比较切片之间是不能比较的,我们不能使用==操作符来判断两个切片是否含有全部相等元素。 切片唯一合法的比较操作是和nil比较。 一个nil值的切片并没有底层数组,一个nil值的切片的长度和容量都是0。但是我们不能说一个长度和容量都是0的切片一定是nil,例如下面的示例:var s1 []int //len(s1)=0;cap(s1)=0;s1==n...
[TOC]前言一、概述切片(Slice)是一个拥有相同类型元素的可变长度的序列。它是基于数组类型做的一层封装。它非常灵活,支持自动扩容。切片是一个引用类型,它的内部结构包含地址、长度和容量。切片一般用于快速地操作一块数据集合。二、切片2.1 切片的定义声明切片类型的基本语法如下:var name []T说明name:表示变量名T:表示切片中的元素类型示例func main() { /...
[TOC]前言一、概述数组是一个由固定长度的特定类型元素组成的序列,一个数组可以由零个或多个元素组成。因为数组的长度是固定的,所以在Go语言中很少直接使用数组。和数组对应的类型是 Slice(切片),Slice 是可以增长和收缩的动态序列,功能也更灵活,但是想要理解 slice 工作原理的话需要先理解数组,所以本节主要为大家讲解数组的使用。二、数组2.1 声明数组数组的声明语法如下:var ...
[TOC]前言在静态类型语言(C++/Java/Golang 等)中规定在创建一个变量或者常量时,必须要指定出相应的数据类型,否则无法给变量分配内存。一、整形整型分两大类有符号整型:int8、int16、int32、int64、int。无符号整型:uint8、uint16、uint32、uint64、uint。注意: 在使用int和 uint类型时,不能假定它是32位或64位的整型,而是考虑...
[TOC]前言一、变量1.1 概述程序在运行过程中,数据保存在内存当中。在代码中,可以通过以下两种方式到内容中访问具体的数据:直接引用该数据的内存地址访问数据通过创建变量将数据的内存地址保存起来,然后通过引用变量名去访问数据和后者相比前者的可读性差,并且容易出错,所以在程序中通常会通过定义一个简短有意义的名称来用于对数据的访问。简言之,变量就是一块存放(可变)数据的内存空间,引用变量名就可以...
[TOC]前言在执行GO语言时需要先安装一个SDKGo 安装包下载Windows系统只需要下载对应版本的以.msi后缀结尾的文件即可。安装完成后自动加入环境变量,不需要手动配置。安装过程很简单本文就不在赘述。安装完成后打开cmd查看是否安装成功go version一、第一个GO程序需求:在控制台输出"Hello World!"package main // 声明 main 包 imp...