随笔分类 -  Go

摘要:变量的内在机制 Go语言中的变量是分为两部分的: 类型信息:预先定义好的元信息 值信息:程序运行过程中可动态变化的 反射介绍 反射是指在程序运行期对程序本身进行访问和修改的能力。程序在编译时,变量被转换为内存地址,变量名不会被编译器写入到可执行部分。在运行程序时,程序无法获取自身的信息。 支持反射的 阅读全文
posted @ 2020-03-11 20:46 下山打老虎i 阅读(167) 评论(0) 推荐(0)
摘要:接口类型 在Go语言中接口(interface)是一种类型,一种抽象的类型。 interface是一组method的集合,是duck-type programming的一种体现。接口做的事情就像是定义一个协议(规则),只要一台机器有洗衣服和甩干的功能,我就称它为洗衣机。不关心属性(数据),只关心行为 阅读全文
posted @ 2020-03-11 19:28 下山打老虎i 阅读(157) 评论(0) 推荐(0)
摘要:包介绍 包(package)是多个Go源码的集合,是一种高级的代码复用方案,Go语言为我们提供了很多内置包,如fmt、os、io等。 定义包 我们还可以根据自己的需要创建自己的包。一个包可以简单理解为一个存放.go文件的文件夹。该文件夹下面的所有go文件都要在代码的第一行添加如下代码,声明该文件归属 阅读全文
posted @ 2020-03-10 20:39 下山打老虎i 阅读(299) 评论(0) 推荐(0)
摘要:Go语言中没有“类”的概念,也不支持“类”的继承等面向对象的概念。Go语言中通过结构体的内嵌再配合接口比面向对象具有更高的扩展性和灵活性。 类型别名和自定义类型 自定义类型 在Go语言中有一些基本的数据类型,如string、整型、浮点型、布尔等数据类型,Go语言中可以使用type关键字来定义自定义类 阅读全文
posted @ 2020-03-05 19:57 下山打老虎i 阅读(274) 评论(0) 推荐(0)
摘要:Go语言中的指针 任何程序数据载入内存后,在内存都有它们的地址,这就是指针。而为了保存一个数据在内存中的地址,我们就需要指针变量。 Go语言中的指针不能进行偏移和运算,因此Go语言中的指针操作非常简单,我们只需要记住两个符号:&(取址符)和 * (根据地址取值) 指针地址和指针类型 每个变量在运行时 阅读全文
posted @ 2020-03-04 20:32 下山打老虎i 阅读(196) 评论(0) 推荐(0)
摘要:函数 Go语言中支持函数、匿名函数和闭包,并且函数在Go语言中属于“一等公民”。 函数定义 Go语言中定义函数使用func关键字,具体格式如下: func 函数名(参数)(返回值){ 函数体 } 其中: 函数名:由字母、数字、下划线组成。但函数名的第一个字母不能是数字。在同一个包内,函数名也称不能重 阅读全文
posted @ 2020-03-03 21:00 下山打老虎i 阅读(175) 评论(0) 推荐(0)
摘要:Go语言中提供的映射关系容器为map,其内部使用散列表(hash)实现。 map map是一种无序的基于key-value的数据结构,Go语言中的map是引用类型,必须初始化才能使用。 map定义 Go语言中 map的定义语法如下: map[KeyType]ValueType 其中, KeyType 阅读全文
posted @ 2020-03-02 20:54 下山打老虎i 阅读(266) 评论(0) 推荐(0)
摘要:引子 因为数组的长度是固定的并且数组长度属于类型的一部分,所有数组有很多局限性。例如: func arraySum(x [3]int) int{ sum := 0 for _, v := range x{ sum = sum + v } return sum } 这个求和函数只能接受[3]int类型 阅读全文
posted @ 2020-03-02 20:31 下山打老虎i 阅读(128) 评论(0) 推荐(0)
摘要:Array(数组) 数组是同一种数据类型元素的集合。在Go语言中,数组从声明时就确定,使用时可以修改数组成员,但是数组大小不可变化。 基本语法: // 定义一个长度为3元素类型为int的数组a var a [3]int 数组定义: var 数组变量名 [元素数量] T 比如:var a [5]int 阅读全文
posted @ 2020-03-02 19:39 下山打老虎i 阅读(137) 评论(0) 推荐(0)
摘要:Go语言中最常用的流程控制有if和for,而switch和goto主要是为了简化代码、降低重复代码而生的结构,属于扩展类的流程控制。 if else(分支结构) if条件判断基本写法 Go语言中if条件判断的格式如下: if 表达式1 { 分支1 } else if 表达式2 { 分支2 } els 阅读全文
posted @ 2020-02-27 22:25 下山打老虎i 阅读(169) 评论(0) 推荐(0)
摘要:运算符 Go 语言内置的运算符有: 算术运算符 关系运算符 逻辑运算符 位运算符 赋值运算符 算数运算符 运算符描述 + 相加 - 相减 * 相乘 / 相除 % 求余 注意: ++(自增)和--(自减)在Go语言中是单独的语句,并不是运算符。 关系运算符 运算符描述 == 检查两个值是否相等,如果相 阅读全文
posted @ 2020-02-27 22:09 下山打老虎i 阅读(113) 评论(0) 推荐(0)
摘要:Go语言中有丰富的数据类型,除了基本的整型、浮点型、布尔型、字符串外,还有数组、切片、结构体、函数、map、通道(channel)等。 基本数据类型 整型 整型分为以下两个大类:按长度分为:int8、int16、int32、int64对应的无符号整型:uint8、uint16、uint32、uint 阅读全文
posted @ 2020-02-27 21:58 下山打老虎i 阅读(203) 评论(0) 推荐(0)
摘要:标识符 在编程语言中标识符就是程序员定义的具有特殊意义的词,比如变量名、常量名、函数名等等。 Go语言中标识符由字母数字和_(下划线)组成,并且只能以字母和_开头。 举几个例子:abc, _, _123, a123。 关键字 关键字是指编程语言中预先定义好的具有特殊含义的标识符。 关键字和保留字都不 阅读全文
posted @ 2020-02-26 21:00 下山打老虎i 阅读(196) 评论(0) 推荐(0)
摘要:Go语言是采用UTF8编码的,理论上使用任何文本编辑器都能做Go语言开发。大家可以根据自己的喜好自行选择。编辑器/IDE没有最好只有最适合。 下载与安装 VS Code官方下载地址:https://code.visualstudio.com/Download 安装中文简体插件 点击左侧菜单栏最后一项 阅读全文
posted @ 2020-02-26 20:25 下山打老虎i 阅读(322) 评论(0) 推荐(0)
摘要:跨平台编译 默认我们go build的可执行文件都是当前操作系统可执行的文件,如果我想在windows下编译一个linux下可执行文件,那需要怎么做呢? 只需要指定目标操作系统的平台和处理器架构即可: SET CGO_ENABLED=0 // 禁用CGO SET GOOS=linux // 目标平台 阅读全文
posted @ 2020-02-26 20:13 下山打老虎i 阅读(552) 评论(0) 推荐(0)
摘要:下载 Go官网下载地址:https://golang.org/dl/ Go官方镜像站(推荐):https://golang.google.cn/dl/ 版本的选择 Windows平台和Mac平台推荐下载可执行文件版,Linux平台下载压缩文件版。 下图中的版本号可能并不是最新的,但总体来说安装教程是 阅读全文
posted @ 2020-02-26 20:10 下山打老虎i 阅读(296) 评论(0) 推荐(0)