Golang内部培训
文章平均质量分 69
boss2967
慎独
展开
-
Go内部培训——节点解析1-10
1. Go 状态协程基于通道的方法和Go的通过消息共享内存,保证每份数据为单独的协程所有的理念是一致的。package mainimport ("fmt""math/rand""sync/atomic""time")// 在这个例子中,将有一个单独的协程拥有这个状态。这样可以// 保证这个数据不会被并行访问所破坏。为了读写这个状态,其// 他的协程将向这个协程发送信息并且...转载 2018-12-20 13:43:26 · 462 阅读 · 0 评论 -
Go内部培训——08.Go的函数
1. 函数的定义不支持 嵌套 (nested)、重载 (overload) 和 默认参数 (default parameter)。无需声明原型。支持不定⻓长变参。支持多返回值。支持命名返回参数。支持匿名函数和闭包。使用关键字 func 定义函数,左大括号依旧不能另起一行。1.1 使用关键字func定义函数,左大括号依旧不能单独起一行。func test(x, y int...原创 2018-12-18 15:10:05 · 176 阅读 · 0 评论 -
Go内部培训——09.Go的错误处理
1.延迟调用1.1 关键字defer 用于注册延迟调用。这些调用直到 return 前才被执行,通常⽤用于释放资源或错误处理。func test() error { f, err := os.Create("test.txt") if err != nil { return err } defer f.Close() // 注册调用,而不是注册函数。必须提供参数,哪怕...原创 2018-12-18 15:29:24 · 179 阅读 · 0 评论 -
Go内部培训——10.Go的数组,切片,Map,结构体
1. 数组(Array)1.1 go中的数组和以往认知的数组很大不同数组是值类型,赋值和传参会复制整个数组,而不是指针数组长度必须是常量,且是类型的组成部分。[2]int 和 [3]int 是不同类型支持 “==”、"!=" 操作符,因为内存总是被初始化过的指针数组 [n]*T,数组指针 *[n]T。1.2 可用复合语句初始化a := [3]int{1, 2} // 未初始化元素...原创 2018-12-18 16:41:37 · 420 阅读 · 0 评论 -
Go内部培训——11.Go的方法
1. 方法的定义1.1 方法总是绑定对象实例,并隐式将实例作为第一实参 (receiver)。只能为当前包内命名类型定义方法。参数 receiver 可任意命名。如方法中未曾使用,可省略参数名。参数 receiver 类型可以是 T 或 *T。基类型 T 不能是接口或指针。不支持方法重载,receiver 只是参数签名的组成部分。可用实例 value 或 pointer 调用全部方法...原创 2018-12-18 16:53:42 · 207 阅读 · 0 评论 -
Go内部培训——12.Go的接口
1.接口定义1.1 接口是一个或多个方法签名的集合,任何类型的方法集中只要拥有与之对应的全部方法,就表示它 “实现” 了该接口,无须在该类型上显式添加接口声明。所谓对应方法,是指有相同名称、参数列表 (不包括参数名) 以及返回值。当然,该类型还可以有其他方法。接口命名习惯以 er 结尾,结构体接口只有方法签名,没有实现接口没有数据字段可在接口中嵌入其他接口类型可实现多个接口...原创 2018-12-18 17:33:03 · 228 阅读 · 0 评论 -
Go内训计划
Go语言内部培训方案目录Go语言开发Go初级Go的简单介绍Go的开发环境搭建Go的开发工具的安装Go语言结构变量与常量类型和字符串控制流程函数错误处理数组,切片,Map,结构体方法接口并发编程Channel文件读写常用相关函数Go中级Go状态协程Go字典Go字符串操作函数Go字符串格式化Go自定义排序Go Base64编码Go Defer...原创 2018-12-18 18:34:19 · 2561 阅读 · 0 评论 -
Go内部培训——13.Go的Goroutine
1. Goroutine1.1 Go 在语言层面对并发编程提供支持,一种类似协程,称作 goroutine 的机制怎么实现go程呢,只需在函数调用语句前添加 go 关键字,就可创建并发执行单元。开发⼈人员无需了解任何执行细节,调度器会自动将其安排到合适的系统线程上执行。goroutine 是一种⾮非常轻量级的实现,可在单个进程里执行成千上万的并发任务。事实上,入口函数 main 就以 go...原创 2018-12-19 10:21:05 · 219 阅读 · 0 评论 -
Go内部培训——14.常用使用的包整理及介绍
1.Go 标准库可以大致按其中库的功能进行以下粗略的分类输入输出。这个分类包括二进制以及文本格式在屏幕、键盘、文件以及其他设备上的输入输出等,比如二进制文件的读写。对应于此分类的包有bufio、 fmt、 io、 log和flag等,其中 flag 用于处理命令行参数。文本处理。这个分类包括字符串和文本内容的处理,比如字符编码转换等。对应于此分类的包有encoding、 bytes、 ...原创 2018-12-19 10:57:44 · 210 阅读 · 0 评论 -
联盟链——01.Hyperledger 简介
1.1 主要简介主要介绍 Hyperledger 项目的背景、初衷、应用范围 项目结构等基本信息。1.2 Hyper ledger 综述Hyperledger (中文名为超级账本,在本书后续章节中统称为 Hyperledger )是 Linux金会于 2015 年发起的推进区块链数字技术和交易验证的开源项目 Hyperledger 的目 标是让成员共同合作、共建开放平台以满足来自多...原创 2018-12-19 11:05:52 · 641 阅读 · 0 评论 -
联盟链——02.Fabric 快速入门
1.1 Fabric 介绍Fabric Hyperledger 项目组中的核心项目,Fabric 的特性以及 Hyperledger 项目组中与 Fabric 相关的项目的基本属性,重点介绍 Fabric 的编译 安装 使用等内容1.2 Fabric 的技术特性使用基于 町的查询、范围查询、复合键查询来查询或更新账本只读查询支持丰富的查询语句( CouchDB只读的历史查询一一实现...原创 2018-12-19 11:28:29 · 982 阅读 · 0 评论 -
联盟链——03.Fabric核心模块详解
1.1 导语Fabric 的核心模块,核心模块配置信息的管理方式1.2 Fabric 核心模块peer 主节点模块,负责存储区块链数据,运行维护链码orderer 交易打包、排序模块cryptogen 组织和证书生成模块configtxgen 区块和交易生成模块configtxlator 区块 交易解 模块1.3 Fabric 模块的通用选项和命令5个核心...原创 2018-12-19 12:03:53 · 1598 阅读 · 0 评论 -
Go内部培训——07.Go的控制流程
1 表达式go设计简练,保留字不多。break default func interface selectcase defer go map structchan else goto package switchconst fallthrough if range typecontinue for import return var2 运算符全部运算符、分隔符,以及其他符号...原创 2018-12-18 14:23:51 · 173 阅读 · 0 评论 -
Go内部培训——06.Go的类型和字符串
1.基本类型1.1 类型介绍1.2 空指针值是nil, 而非NULL2.引用类型2.1 引用类型包括slice,map,channel内置函数 new 计算类型大小,为其分配零值内存,返回指针。而 make 会被编译器翻译成具体的创建函数,由其分配内存和初始化成员结构,返回对象而非指针。a := []int{0, 0, 0} // 提供初始化表达式。a[1] = 10b :=...原创 2018-12-18 13:42:41 · 193 阅读 · 0 评论 -
Solidity中文文档(内部)
1. 值类型和引用类型Solidity是一个静态类型的语言,在编译时需要明确指定变量的类型,主要分类值类型,引用类型。值类型包括:布尔整形地址定长字节数组有理数和整型枚举类型函数值类型在传值时,会临时拷贝一份内容出来,而不是拷贝指针,当你修改新的变量时候,原来值不会发生改变。引用类型包括:不定长字节数组字符串数组结构体引用类型,赋值时,我...原创 2018-12-18 11:35:41 · 747 阅读 · 0 评论 -
Go内部培训——节点解析11-20
11. Go Line Filterspackage mainimport ("bufio""fmt""os""strings")func main() {// 使用缓冲scanner来包裹无缓冲的`os.Stdin`可以让我们// 方便地使用`Scan`方法,这个方法会将scanner定位到下// 一行的位置scanner := bufio.NewScanner(os.S...转载 2018-12-20 13:55:49 · 202 阅读 · 0 评论 -
Go内部培训——节点解析21-30
21. Go 并行通道ChannelChannel是连接并行协程(goroutine)的通道。你可以向一个通道写入数据然后从另外一个通道读取数据。package mainimport "fmt"func main() {// 使用`make(chan 数据类型)`来创建一个Channel// Channel的类型就是它们所传递的数据的类型messages := make(chan...转载 2018-12-20 14:04:27 · 236 阅读 · 0 评论 -
Go内部培训——节点解析31-40
31. Go 函数定义函数是Go语言的重要内容。package mainimport "fmt"// 这个函数计算两个int型输入数据的和,并返回int型的和func plus(a int, b int) int {// Go需要使用return语句显式地返回值return a + b}func main() {// 函数的调用方式很简单// "名称(参数列表)"res...转载 2018-12-20 14:20:00 · 221 阅读 · 0 评论 -
Go内部培训——节点解析41-50
41. Go 进程执行在上面的例子中,我们演示了一下如何去触发执行一个外部的进程。我们这样做的原因是我们希望从Go进程里面可以访问外部进程的信息。但有的时候,我们仅仅希望执行一个外部进程来替代当前的Go进程。这个时候,我们需要使用Go提供的 exec 函数。package mainimport "syscall"import "os"import "os/exec"func mai...转载 2019-05-06 11:12:32 · 231 阅读 · 0 评论 -
Go内部培训——节点解析51-60
51. Go 时间格式化和解析Go使用模式匹配的方式来支持日期格式化和解析。package mainimport "fmt"import "time"func main() {p := fmt.Println// 这里有一个根据RFC3339来格式化日期的例子t := time.Now()p(t.Format("2006-01-02T15:04:05Z07:00"))//...转载 2019-05-06 11:12:38 · 363 阅读 · 0 评论 -
Go内部培训——节点解析61-63
61. Go 信号处理有的时候我们希望Go能够智能地处理Unix信号。例如我们希望一个server接收到一个SIGTERM的信号时,能够自动地停止;或者一个命令行工具接收到一个SIGINT信号时,能够停止接收输入。现在我们来看下如何使用channel来处理信号。package mainimport "fmt"import "os"import "os/signal"转载 2019-05-06 11:12:46 · 297 阅读 · 0 评论 -
Go内部培训——01.Go的简单介绍
Golang简介Golang介绍Go 是一个开源的编程语言,它能让构造简单、可靠且高效的软件变得容易。Go 是一个开源的编程语言,它能让构造简单、可靠且高效的软件变得容易。Golang语言特色简洁、快速、安全并行、有趣、开源内存管理、数组安全、编译迅速Golang语言用途Go 语言被设计成一门应用于搭载 Web 服务器,存储集群或类似用途的巨型中央服...原创 2018-12-17 20:01:26 · 445 阅读 · 0 评论 -
Go内部培训——02.Go的开发环境搭建
Go 语言支持以下系统:LinuxMac OS XWindows安装地址安装包下载地址为:https://golang.org/dl/。如果打不开可以使用这个地址:https://golang.google.cn/dl/。UNIX/Linux/Mac OS X环境安装下载二进制包:go1.4.linux-amd64.tar.gz将下载的二进制包解...原创 2018-12-17 20:16:31 · 203 阅读 · 0 评论 -
Go内部培训——03.Go的开发工具的安装及使用
Go开发工具的安装个人使用开发工具为IDEA的一款关于go语言的的开发工具Goland,下面开始讲解安装流程。(若有其他开发工具偏好,可联系本人或者自行百度)打开IDEA官网。如下:然后点击下载按钮。如下:然后你会看到下载页面,执行下载。如下:成功下载后,点击安装,一路下一步就可以了。安装成功后,打开会发现提示你要激活码,下面讲解激活码的配置。进入h...原创 2018-12-17 20:43:49 · 250 阅读 · 0 评论 -
Go内部培训——04.Go语言结构
在我们开始学习 Go 编程语言的基础构建模块前,让我们先来了解 Go 语言最简单程序的结构。Go 语言的基础组成有以下几个部分:Go 语言的基础组成有以下几个部分:包声明引入包函数变量语句 & 表达式注释接下来让我们来看下简单的代码,该代码输出了"Hello World!":package mainimport &quot原创 2018-12-17 20:55:23 · 169 阅读 · 0 评论 -
Go内部培训——05.Go的变量和常量
1.变量Go 是静态类型语言,不能在运行期改变变量类型。使用关键字 var 定义变量,自动初始化为零值。如果提供初始化值,可省略变量类型,由编译器自动推断。//01.单个变量声明var x intvar f float32 = 1.6var s = "abc"//02.可以一次定义多个变量var x, y, z intvar s, n = "abc&原创 2018-12-17 21:05:57 · 375 阅读 · 0 评论 -
联盟链——04.Fabric的账号体系
1.1 Fabric账号简介Fabric 的账号体系是 Fabric 的重要的组成部分,由于 Fabric 是基于证书而不是传统的户名名和密码形式,所以会有所不同。在任何非开放系统中都需要通过账号和密码对系统人口进行相关的管理。联盟链的特点是用户非授权时不能接入区块链,所以Fabric系统中存在一套授权体系,称为Fabric的账号体系。Fabric账号是什么Fabric 中的账号实际上...原创 2018-12-19 12:31:38 · 1499 阅读 · 0 评论