函数简介
函数是编程语言中不可缺少的部分,在golang这门语言中函数是一等公民。也是使用好golang的必备技能。
看下golang函数的格式
1 | func 函数名(函数参数)返回值类型{ |
一个简单的函数
1 | func HelloFunc(str string) string{ |
该函数返回传入的字符串,函数调用如下
1 | fmt.Println(Hello("Nice to meet you!")) |
下载etcd release版本:https://github.com/coreos/etcd/releases/
我的是windows版本,下载win64的就行了,下载后进入文件夹,建立几个配置文件启动就行了,可以写yml文件,我是windows的就做成了bat命令。
一般是一个节点对应一个配置,一个节点的配置如下
yml文件版本
1 | name: etcd-1 |
前文介绍了golang实现基本的四中排序,本文带领大家实现堆排序,堆排序是效率很高的算法,通过取出大根堆堆顶元素从而实现排序的算法。
该算法以出色的效率著称,时间复杂度为O (nlgn)
做游戏或金融后台开发,经常会遇到设计开发排行榜的需求。比如玩家的充值排行,战力排行等等。而这种排行基本都是即时更新的,快速排序对于单一类型排序可以满足需求,但是对于多种类的排序就很吃力,比如实现一个排行榜,有战力排序,有充值排序,如下图
map同样也是引用类型,map在使用前需要通过make进行初始化,否则会报panic错误。
1 | type PersonInfo struct { |
可以看到map使用前用make先构造初始化,之后进行了插入,如果key存在,则修改value
1 | //从这个map查找键为"1234" |
查找指定key,返回值为value和bool类型结果,所以先判断bool类型值是否为true
golang 中变量类型分为引用类型和值类型(也叫作内置类型)
值类型:基本数据类型int、float、bool、string以及数组和struct
引用类型:指针、slice、map、chan等都是引用类型。这类型变量需要通过make构造
golang中函数传递参数,只有值传递一种,也就是实参内容按照值copy方式传递给形参。
当函数的形参变量类型为指针,slice,map,chan等类型时,虽然实参和形参地址不同,但是内部指向了同一个地址,所以可以达到修改指定空间数据的目的。
不要着急,接下来我会写一写小demo帮助大家理解。
Cobra是golang的命令行参数库,可以配置命令启动,读取参数等。
将cobra下载到 $GOPATH,用命令:
1 | go get -v github.com/spf13/cobra/cobra |
然后使用 go install github.com/spf13/cobra/cobra, 安装后在 $GOBIN 下出现了cobra 可执行程序。
cobra程序只能在GOPATH之下使用,所以首先你需要进入到GOPATH的src目录之下,在该目录下,输入:
1 | cobra init demo |
$GOPATH目录下生成了demo文件夹,其组织形式如下
1 | demo |
进去该文件夹,运行:
1 | go run main.go |
本文介绍基本的golang变量和简单的demo,该系列博文由浅入深,带领大家初入golang。
1 | var v1 int //整形 |
如注释所说,上面就是以后会用到的基本类型,切片可以理解为C++的vector,python的list。
可以用括号把两个变量括起来一起定义。