go etcd

etcd 是由Go语言编写的key-value 存储,主要用途是共享配置和服务发现 分布式系统之间必然要做到数据共享,需要依赖一个可靠的共享存储服务,而etcd能够提供这样的服务 etcd类似的项目: zookeeper和consul etcd常见的两个版本v2和v3, 它们是两个独立的应用...

2019-03-12 13:53:48

阅读数 29

评论数 0

go 继承

go里面严格来说是没有继承的 所谓的继承是通过匿名字段的组合来实现的 在使用其多态的时候可能会出问题 它不像java那种, 根据实际传入的类型来选择方法 type A struct {} type B struct { A // 只写出类型, 没有变量名 -- &am...

2019-03-05 17:44:23

阅读数 16

评论数 0

go 协程等待

sync包提供了基本的同步基元,如互斥锁 但是这里不是讨论线程通信的问题(而线程通信应使用Channel) 以前使用time.Sleep(...)来保证线程执行完成, 显然线程执行所需要的时间不确定 sync里面有一个WaitGroup, 它是一个结构体, 可以用于等待线程执行 这样不用去...

2019-03-05 17:01:52

阅读数 25

评论数 0

go beego框架

beego是go的一个MVC的web开发框架, 基于net/http的封装 如, 对路由的封装, 增加缓存, 日志库 beego web开发: 规划url 添加路由 开发controller(继承beego.Controller) 测试 安装beego:C:\Windows\Syste...

2019-03-04 21:55:15

阅读数 35

评论数 0

go mysql事务

事务: 多个任务合起来称为一个事务 比如转账, 一个账户要增加钱, 另一个帐户要减少钱, 可能还有其它的关联任务 无论怎样, 至少是两个sql任务, 所以要保证这两个任务同时成功或同时失败, 则必须用到事务 事务最重要的就是原子性, 即多个任务同时成功或同时失败 事务操作: 开启事务 -...

2019-03-04 15:57:05

阅读数 68

评论数 0

go mysql操作

数据库驱动是不同数据库开发商(比如oracle mysql等) 为计算机语言能够实现数据库访问而开发的程序 它将计算机语言对数据库的操作翻译成自身的数据库语言 使用go语言操作mysql, 需要的驱动: github.com/go-sql-driver/mysql 使用命令:go ge...

2019-02-28 15:56:42

阅读数 21

评论数 0

go 模板

go可以不需要第三方的模板, 它自己具有模板功能 首先需要模板文件(作为渲染页面): index.html: <html> <head> <title&am...

2019-02-28 11:00:32

阅读数 10

评论数 0

go http

http包提供了HTTP客户端和服务端的实现 *http.Request 获取客户端提交的数据 http.ResponseWriter向客户端响应数据 http_server.go: /* 自定义http的业务逻辑函数 */ // response是一个io.Writer, 相当...

2019-02-27 13:36:03

阅读数 13

评论数 0

go 单元测试

testing包提供对 Go 包的自动化测试的支 通过 `go test` 命令,能够自动执行如下形式的任何函数: func TestXxx(te *testing.T) Test是固定的, *testing.T也是固定的参数类型 calc.go中 里面是目标函数, 没有任何要求...

2019-02-22 17:14:31

阅读数 25

评论数 0

go 定时器

time包中的方法NewTicker可以创建一个*Ticker  Ticker是一个结构体, 其中的字段C是一个channel 创建Ticker时, 根据参数表示的间隔, 向C中存入当前的时间(背后有一个协程执行这个动作) func main() { t := time.NewTi...

2019-02-22 13:07:02

阅读数 52

评论数 0

go 线程与channel

线程, 程序运行的分支 go中的线程是轻量级的线程, 不需要使用线程池管理 开启线程: go func() import ( "fmt" "runtime" ) func main() { ma...

2019-02-21 17:06:28

阅读数 16

评论数 0

go 错误处理

type error interface { Error() string } 内建error接口 类型用于表示错误信息,nil值表示无错误, 不属于哪一个包, 能直接使用 errors包中的New函数可以构建error变量 func main() { var err =...

2019-02-19 23:28:52

阅读数 8

评论数 0

go json协议

json协议是一个数据互通桥梁, 和语言无关, 它起的作用相当于翻译官 比如要go里面的数据 转换为 java的数据 直接把go数据给java, 肯定是不行的, 比如java根本就不认识结构体 此时需要中间桥梁json , 因为json是java和go都能处理的 先将go的数据转换为jso...

2019-02-19 12:29:20

阅读数 13

评论数 0

go 命令行参数

os.Agrs 是一个string型的切片, 用于储存所有的命令行参数 如果不传入命令行参数, 则os.Args中只有一个参数 -- 程序本身 func main() { fmt.Println(len(os.Args)) // 1 for k, v := range os....

2019-02-18 22:33:50

阅读数 74

评论数 0

go 标准输入输出 与 文件读写

平常使用的输入输出操作: func main() { fmt.Println("输入输出测试") var a int var b string fmt.Scanln(&a, &b...

2019-02-18 21:32:53

阅读数 133

评论数 0

go 接口使用(适配器模式)

接口就是一种规范, 只要遵循规范就可以使用其方法做多态操作 使用步骤: 1.在接口中定义方法 2.需要不同的实现 3.统一管理这些实现 以一个负载均衡为例 创建实例(主机)instance.go: package balance import "strconv...

2019-02-17 12:57:32

阅读数 73

评论数 0

go反射

反射: 在运行时动态地获取变量的相关信息 func test(data interface{}) {...} 对于这个test函数而言, 它并不知道参数data的信息 在运行时, 可以根据一种方式获取data的实际信息 -- 反射 反射有两个常用函数: func TypeOf(i in...

2019-02-14 22:57:54

阅读数 14

评论数 0

go接口

go里面的接口使用interface定义 接口就是提供一种规范, 不需要关注它的实现, 都按照相同的操作使用它 接口是一种类型 type Test interface {...} 接口中包含未实现的方法, 不可包含变量   结构体的方法中, 如果有方法签名与接口中的方法签名相同, 则称结...

2019-02-14 21:14:01

阅读数 27

评论数 1

go链表(头指针和尾指针)

要求: 创建一个空链表, 可以从头部插入任意数据, 也可以从尾部插入, 再遍历出来 分析: 首先肯定是需要一个链表型的结构体          再用一个结构体分别指向链表的头和尾两个节点          向链表添加元素时, 动态修改两个指针的指向          主要弄清楚二者的关系就...

2019-02-14 11:28:53

阅读数 102

评论数 0

go结构体链表二叉树

链表就是 一个元素 通过指针连结 另一个元素, 元素之间在内存中不是连续的 定义结构体: type Student struct { Name string Age int32 Score float32 next *Student } 如上这种结构体, 有...

2019-02-12 10:09:14

阅读数 36

评论数 0

提示
确定要删除当前文章?
取消 删除
关闭
关闭