![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
GO
老蒋的程序人生
区块链公司CTO,一个专注于区块链技术落地融合应用的排头兵。
展开
-
GO语言学习笔记(十三、项目与问题)
创建一个goroutine, 与主线程按顺序相互发送信息若干次并打印go func(v string) ,值传递而不是引用传递,原创 2020-02-02 17:16:04 · 141 阅读 · 0 评论 -
GO语言学习笔记(十二、并发concurrency)
并发concurrency很多人都冲着Go大肆宣扬的高并发而忍不住跃跃欲试,但其实从源码的解析来看,goroutine只是由官方实现的超级“线程池”而已。不过话说回来,每个实例4-5KB的栈内存占用和由于实现机制而大幅减少的创建和销毁开销,是制造Go号称的高并发的根本原因。另外goroutine的简单易用,也在语言层面上给予了开发者巨大的便利。并发不是并行:Concurrency ...原创 2020-02-02 12:53:08 · 228 阅读 · 0 评论 -
GO语言学习笔记(十一、反射reflection)
反射reflection反射可大大提高程序的灵活性,使得interface{}有更大的发挥余地反射使用TypeOf和VuleOf函数从接口中获取目标对象信息反射会将匿名字段作为独立字段(匿名字段本质)想要利用反射修改对象状态,前提是interface.data是settable,即pointer-interface通过反射可以“动态”调用方法对接口中的对象通过反射对...原创 2020-02-01 14:46:13 · 152 阅读 · 0 评论 -
GO语言学习笔记(十、接口interface)
接口 interface接口是一个或多个方法签名的集合只要某个类型拥有该接口的所有方法签名,即算实现该接口,无需显示声明实现了哪个接口,这称为Strucural Typing接口只有方法声明,没有实现,没有数据字段接口可以匿名嵌入其它接口,或嵌入到结构中将对象赋值给接口时,会发生拷贝,而接口内部存储的是指向这个复制品的指针,既无法修改复制品的状态,也无法获取指针只有当接口存...原创 2020-02-01 11:09:58 · 102 阅读 · 0 评论 -
GO语言学习笔记(九、方法 method)
方法methodGo中虽没有class,但依旧有method通过显示说明receiver来实现某个类型的组合只能为同一个包中的类型定义方法Receiver可以是类型的值或者指针不存在方法重载可以使用值或者指针来调用方法,编译器自动完成转换从某种意义上说,方法是函数的语法糖,因为receiver其实就是方法所接收的第一个参数(Method Value vs. Method...原创 2020-01-31 22:37:19 · 124 阅读 · 0 评论 -
GO语言学习笔记(八、结构 struct)
Go中的struct与C中的struct非常类似,并且Go没有class使用type<Name> struct{} 定义结构,名称遵循可见性规则支持指向自身的指针类型成员支持匿名结构,可用作成员或定义成员变量匿名结构也可以用于map的值可以使用字面值对结构进行初始化允许直接通过指针来读写结构成员相同类型的成员可进行直接拷贝赋值支持==与!=比较运算符,但...原创 2020-01-31 18:37:48 · 279 阅读 · 0 评论 -
GO语言学习笔记(七、function)
函数functionGo函数不支持嵌套、重载和默认参数但支持以下特性:无需声明原型、不定长度变参、多返回值、命名返回值参数、匿名函数、闭包定义函数使用关键字func,且左大括号不能另起一行函数也可以作为一种类型使用闭包deferdefer的执行方式类似其它语言中的析构函数,在函数体执行结束后按照调用顺序的相反顺序逐个执行即使函数发生严重错误也会执行支...原创 2020-01-30 19:28:09 · 445 阅读 · 0 评论 -
GO语言学习笔记(六、map)
map类似其它语言中的哈希表或者字典,以key-value形式存储数据Key必须是支持==或!=比较运算的类型,不可以是函数、map或sliceMap查找比线性搜索快很多,但比使用索引访问数据的类型慢100倍Map使用make()创建,支持:=这种简写方式make([keyType]valueType,cap),cap表示容量,可省略超出容量时会自动扩容,但尽量提供一个合理...原创 2020-01-30 14:18:40 · 118 阅读 · 0 评论 -
GO语言学习笔记(五、切片slice)
切片Slice其本身并不是数组,它指向底层的数组作为变长数组的替代方案,可以关联底层数组的局部或全部为引用类型可以直接创建或从底层数组获取生成使用len()获取元素个数,cap()获取容量一般使用make()创建如果多个slice指向相同底层数组,其中一个的值改变会影响全部make([]T,len,cap)其中cap可以省略,则和len的值相同len表示存数...原创 2020-01-29 22:29:01 · 169 阅读 · 0 评论 -
GO语言学习笔记(四、数组Array)
数组Array定义数组的格式:var<varName> [n] <type> , n>=0数组长度也是类型的一部分,因此具有不同长度的数组为不同类型注意区分指向数组的指针和指针数组数组在Go中为值类型数组之间可以使用==或者!=进行比较,但不可以使用<或>可以使用new来创建数组,此方法返回一个指向数组的指针Go支持多维数组...原创 2020-01-29 14:53:55 · 125 阅读 · 0 评论 -
GO语言学习笔记(三、控制语句)
指针GO虽然保留了指针,但与其它编程语言不同的是,在GO当中不支持指针运算以及“->”运算符,而直接采用“.”选择符来操作指针目标对象的成员。操作符“&”取变量地址,使用“*”通过指针间接访问目标对象;默认值为nil而非NULL判断语句if条件表达式没有括号支持一个初始化表达式(可以使并行方式)左大括号必须和条件语句或else在同一行支持单行模式...原创 2020-01-29 12:00:06 · 107 阅读 · 0 评论 -
GO语言学习笔记(二、常量与运算符)
常量的初始化规则与枚举在定义常量组时,如果不提供初始值,则表示将使用上行的表达式 使用相同的表达式不代表具有相同的值 iota是常量的计数器,从0开始,组中每定义1个常量自动递增1 通过初始化规则与iota可以达到枚举的效果 每遇到一个const关键字,iota就会重置为2、运算符GO中的运算符均是从做到右结合运行结果:...原创 2020-01-28 18:48:51 · 99 阅读 · 0 评论 -
GO语言学习笔记(一、基础知识)
GO程序的一般结构:basic_structure.goGO程序是通过package来组织的(与python类似) 只有package名称为main的包可以包含main函数 一个可执行程序有且仅有一个main包 通过import关键字来导入其它非main包 通过const关键字来进行常量的定义 通过在函数体外部使用var关键字来进行全局变量的声明与赋值 通过type关键字来进行结构...原创 2020-01-28 16:05:04 · 270 阅读 · 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 · 111 阅读 · 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 · 280 阅读 · 0 评论 -
Go
Go知识库http://lib.csdn.net/base/go原创 2016-10-26 23:02:48 · 121 阅读 · 0 评论 -
Go语言编程入门
Go语言编程入门http://edu.csdn.net/course/detail/2306原创 2016-10-26 23:01:26 · 171 阅读 · 0 评论