GO
老蒋每日coding
WEB3创新区块链公司CTO,曾任国内大厂及500强外企高级架构师,热爱coding,专注于区块链&AI技术落地融合应用的IT老兵。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
GO语言学习笔记(十三、项目与问题)
创建一个goroutine, 与主线程按顺序相互发送信息若干次并打印 go func(v string) ,值传递而不是引用传递,原创 2020-02-02 17:16:04 · 215 阅读 · 0 评论 -
GO语言学习笔记(十二、并发concurrency)
并发concurrency 很多人都冲着Go大肆宣扬的高并发而忍不住跃跃欲试,但其实从源码的解析来看,goroutine只是由官方实现的超级“线程池”而已。 不过话说回来,每个实例4-5KB的栈内存占用和由于实现机制而大幅减少的创建和销毁开销,是制造Go号称的高并发的根本原因。 另外goroutine的简单易用,也在语言层面上给予了开发者巨大的便利。 并发不是并行:Concurrency ...原创 2020-02-02 12:53:08 · 291 阅读 · 0 评论 -
GO语言学习笔记(十一、反射reflection)
反射reflection 反射可大大提高程序的灵活性,使得interface{}有更大的发挥余地 反射使用TypeOf和VuleOf函数从接口中获取目标对象信息 反射会将匿名字段作为独立字段(匿名字段本质) 想要利用反射修改对象状态,前提是interface.data是settable,即pointer-interface 通过反射可以“动态”调用方法 对接口中的对象通过反射对...原创 2020-02-01 14:46:13 · 219 阅读 · 0 评论 -
GO语言学习笔记(十、接口interface)
接口 interface 接口是一个或多个方法签名的集合 只要某个类型拥有该接口的所有方法签名,即算实现该接口,无需显示声明实现了哪个接口,这称为Strucural Typing 接口只有方法声明,没有实现,没有数据字段 接口可以匿名嵌入其它接口,或嵌入到结构中 将对象赋值给接口时,会发生拷贝,而接口内部存储的是指向这个复制品的指针,既无法修改复制品的状态,也无法获取指针 只有当接口存...原创 2020-02-01 11:09:58 · 166 阅读 · 0 评论 -
GO语言学习笔记(九、方法 method)
方法method Go中虽没有class,但依旧有method 通过显示说明receiver来实现某个类型的组合 只能为同一个包中的类型定义方法 Receiver可以是类型的值或者指针 不存在方法重载 可以使用值或者指针来调用方法,编译器自动完成转换 从某种意义上说,方法是函数的语法糖,因为receiver其实就是方法所接收的第一个参数(Method Value vs. Method...原创 2020-01-31 22:37:19 · 182 阅读 · 0 评论 -
GO语言学习笔记(八、结构 struct)
Go中的struct与C中的struct非常类似,并且Go没有class 使用type<Name> struct{} 定义结构,名称遵循可见性规则 支持指向自身的指针类型成员 支持匿名结构,可用作成员或定义成员变量 匿名结构也可以用于map的值 可以使用字面值对结构进行初始化 允许直接通过指针来读写结构成员 相同类型的成员可进行直接拷贝赋值 支持==与!=比较运算符,但...原创 2020-01-31 18:37:48 · 352 阅读 · 0 评论 -
GO语言学习笔记(七、function)
函数function Go函数不支持嵌套、重载和默认参数 但支持以下特性: 无需声明原型、不定长度变参、多返回值、命名返回值参数、匿名函数、闭包 定义函数使用关键字func,且左大括号不能另起一行 函数也可以作为一种类型使用 闭包 defer defer的执行方式类似其它语言中的析构函数,在函数体执行结束后按照调用顺序的相反顺序逐个执行 即使函数发生严重错误也会执行 支...原创 2020-01-30 19:28:09 · 515 阅读 · 0 评论 -
GO语言学习笔记(六、map)
map 类似其它语言中的哈希表或者字典,以key-value形式存储数据 Key必须是支持==或!=比较运算的类型,不可以是函数、map或slice Map查找比线性搜索快很多,但比使用索引访问数据的类型慢100倍 Map使用make()创建,支持:=这种简写方式 make([keyType]valueType,cap),cap表示容量,可省略 超出容量时会自动扩容,但尽量提供一个合理...原创 2020-01-30 14:18:40 · 209 阅读 · 0 评论 -
GO语言学习笔记(五、切片slice)
切片Slice 其本身并不是数组,它指向底层的数组 作为变长数组的替代方案,可以关联底层数组的局部或全部 为引用类型 可以直接创建或从底层数组获取生成 使用len()获取元素个数,cap()获取容量 一般使用make()创建 如果多个slice指向相同底层数组,其中一个的值改变会影响全部 make([]T,len,cap) 其中cap可以省略,则和len的值相同 len表示存数...原创 2020-01-29 22:29:01 · 234 阅读 · 0 评论 -
GO语言学习笔记(四、数组Array)
数组Array 定义数组的格式:var<varName> [n] <type> , n>=0 数组长度也是类型的一部分,因此具有不同长度的数组为不同类型 注意区分指向数组的指针和指针数组 数组在Go中为值类型 数组之间可以使用==或者!=进行比较,但不可以使用<或> 可以使用new来创建数组,此方法返回一个指向数组的指针 Go支持多维数组 ...原创 2020-01-29 14:53:55 · 184 阅读 · 0 评论 -
GO语言学习笔记(三、控制语句)
指针 GO虽然保留了指针,但与其它编程语言不同的是,在GO当中不支持指针运算以及“->”运算符,而直接采用“.”选择符来 操作指针目标对象的成员。操作符“&”取变量地址,使用“*”通过指针间接访问目标对象;默认值为nil而非NULL 判断语句if 条件表达式没有括号 支持一个初始化表达式(可以使并行方式) 左大括号必须和条件语句或else在同一行 支持单行模式...原创 2020-01-29 12:00:06 · 164 阅读 · 0 评论 -
GO语言学习笔记(二、常量与运算符)
常量的初始化规则与枚举 在定义常量组时,如果不提供初始值,则表示将使用上行的表达式 使用相同的表达式不代表具有相同的值 iota是常量的计数器,从0开始,组中每定义1个常量自动递增1 通过初始化规则与iota可以达到枚举的效果 每遇到一个const关键字,iota就会重置为 2、运算符 GO中的运算符均是从做到右结合 运行结果: ...原创 2020-01-28 18:48:51 · 159 阅读 · 0 评论 -
GO语言学习笔记(一、基础知识)
GO程序的一般结构:basic_structure.go GO程序是通过package来组织的(与python类似) 只有package名称为main的包可以包含main函数 一个可执行程序有且仅有一个main包 通过import关键字来导入其它非main包 通过const关键字来进行常量的定义 通过在函数体外部使用var关键字来进行全局变量的声明与赋值 通过type关键字来进行结构...原创 2020-01-28 16:05:04 · 325 阅读 · 0 评论 -
GO命令
GO命令 在命令行或者终端输入go即可查看所有支持的命令 GO常用命令简介 go get : 获取远程包(需要提前安装git) go run :直接运行程序 go build :测试编译,检查是否有编译错误 go fmt :格式化源码(部分IDE在保存时自动调用) go test :运行测试文件 go doc :查看文档(CHM手册) 示例 ...原创 2020-01-27 22:16:46 · 160 阅读 · 0 评论 -
GO环境安装
1、安装包下载: 安装包下载地址为:https://golang.google.cn/dl/ 可以根据自身情况下载相应的版本,我用的是WINDOWS环境,如下所示: 2、安装: 点击“go1.13.6.windows-amd64.msi”进行安装,默认安装在C:\Go目录; 3、设置环境变量:右击 计算机-》属性-》高级系统属性-》高级-》环境变量, 另外把GOPATH下的b...原创 2020-01-27 21:21:43 · 371 阅读 · 0 评论 -
Go
Go知识库 http://lib.youkuaiyun.com/base/go原创 2016-10-26 23:02:48 · 166 阅读 · 0 评论 -
Go语言编程入门
Go语言编程入门 http://edu.youkuaiyun.com/course/detail/2306原创 2016-10-26 23:01:26 · 214 阅读 · 0 评论
分享