随笔分类 -  go

摘要:xorm xorm是一个简单而强大的ORM库。 安装 go get -u github.com/go-xorm/xorm 驱动支持 Mysql: github.com/go-sql-driver/mysql MyMysql: github.com/ziutek/mymysql Postgres: g 阅读全文
posted @ 2020-03-09 15:51 Dwyane.wang 阅读(4974) 评论(0) 推荐(0)
摘要:什么是go module go module是go1.11版本之后推出来的版本管理工具,并且在go1.13之后默认支持。使用go module之后可以轻松的帮你告别gopath,那么什么是gopath呢? GOPATH GOPATH是go的环境变量,设置GOPATH vi /etc/profile 阅读全文
posted @ 2020-03-08 23:43 Dwyane.wang 阅读(1258) 评论(0) 推荐(0)
摘要:测试 测试是自动化测试的简称,即编写简单的程序来确保程序(产品代码)在测试中针对特定输入产生预期的输出。Go的测试方法看上去相对比较低级,它依赖于命令go test和一些能用go test运行的测试函数的编写约定 go test 工具 go test 子命令是Go语言包的测试驱动程序,这些包根据某些 阅读全文
posted @ 2020-03-03 23:07 Dwyane.wang 阅读(1043) 评论(0) 推荐(0)
摘要:go语言提供了一种机制,在编译时不知道类型的情况下,可更新变量,在运行时查看值,调用方法以及直接对他们的布局进行操作。这种机制称为反射(reflection)。 为什么使用反射 有时候我们需要写一个函数有能力统一处理各种值类型的函数,而这些类型可能无法共享同一个接口,也可能布局未知,也有可能这个类型 阅读全文
posted @ 2020-03-02 22:54 Dwyane.wang 阅读(701) 评论(0) 推荐(0)
摘要:并发安全(竞态问题) 让一个程序并发安全并不需要其中的每一个具体类型都是并发安全的。实际上并发安全的类型其实是特例而不是普遍存在的,所以仅在文档指出类型是安全的情况下,才可以并发的访问一个变量。与之对应的是,导出的包级别函数通常可以认为是并发安全的。因为包级别的变量无法限制在一个goroutine内 阅读全文
posted @ 2020-03-01 18:04 Dwyane.wang 阅读(3310) 评论(0) 推荐(1)
摘要:在了解之前,要注意golang是并发语言而不是并行语言 并发和并行 并发是一次性做大量事情的能力(两个或多个事件在同一时间间隔发生) 并行同一时间执行多个任务的能力(两个或者多个事件在同一时刻发生) 举例说明: 每天早上10分钟我洗脸,刷牙,吃早饭等等很多事情,这就是并发。 我一边刷牙的同时在烧水做 阅读全文
posted @ 2020-03-01 14:31 Dwyane.wang 阅读(536) 评论(0) 推荐(0)
摘要:interface是golang中的精华所在 定义 接口定义了对象的行为,当一个类型为接口中的所有方法提供定义时,它被称为接口。 具体指定类型应具有的方法,类型决定如何实现这些方法。 声明 type 接口名称 interface { method1(参树列表) 返回值列表 method2(参树列表) 阅读全文
posted @ 2020-02-23 17:00 Dwyane.wang 阅读(345) 评论(0) 推荐(0)
摘要:主要针对jwt-go快速生成token。和如何取进行介绍,具体详情还请查看 github.com/dgrijalva/jwt-go 生成token package main import ( "flag" "fmt" "github.com/dgrijalva/jwt-go" "github.com 阅读全文
posted @ 2019-08-22 21:42 Dwyane.wang 阅读(3819) 评论(0) 推荐(0)
摘要:在安装之前首先需要对go-micro有一定的了解 https://micro.mu/docs/cn/ go-micro中文文档 https://juejin.im/post/5cebafe6f265da1bb80c0cc7 go-micro源码 https://segmentfault.com/a/ 阅读全文
posted @ 2019-08-04 23:52 Dwyane.wang 阅读(1047) 评论(0) 推荐(0)
摘要:golang提供了sql包查询数据 建立连接 导入第三方包 import( "database/sql" _"github.com/go-sql-driver/mysql" ) open打开 db, err := sql.Open("mysql", "root:password@tcp(127.0. 阅读全文
posted @ 2019-07-10 21:11 Dwyane.wang 阅读(2928) 评论(1) 推荐(1)
摘要:针对官网对flag 的定义解释一堆,对与我来说看了许久只想获取它的用法时,特意去整理一下。能快速使用并掌握它。 查看flag源码大致定义几下几种格式 //定义一个字符串的变量 type string string func String(name string, value string, usag 阅读全文
posted @ 2019-07-09 22:18 Dwyane.wang 阅读(1270) 评论(0) 推荐(0)
摘要:概述 context是Go中广泛使用的程序包,由Google官方开发,在1.7版本引入。它用来简化在多个go routine传递上下文数据、(手动/超时)中止routine树等操作,比如,官方http包使用context传递请求的上下文数据,gRpc使用context来终止某个请求产生的routin 阅读全文
posted @ 2019-07-09 21:49 Dwyane.wang 阅读(1087) 评论(0) 推荐(0)
摘要:文件操作要理解一切皆文件。 Go 在 os 中提供了文件的基本操作,包括通常意义的打开、创建、读写等操作,除此以外为了追求便捷以及性能上,Go 还在 io/ioutil 以及 bufio 提供一些其他函数供开发者使用 操作File文件类型 go中打开文件常用os.open,需要注意的是os.open 阅读全文
posted @ 2019-06-30 15:26 Dwyane.wang 阅读(3720) 评论(0) 推荐(0)
摘要:针对golang中的字符串的介绍,提供了一些常用的函数和方法 package main import ( "fmt" "strings" ) func main() { s1 := "abc" s2 := "ABC" s3 := s1 + s2 s4 := `hello\n` fmt.Println 阅读全文
posted @ 2019-03-26 22:32 Dwyane.wang 阅读(739) 评论(0) 推荐(0)
摘要:由于自己是搞python开发的,所以在学习go时,当看到函数和方法时,顿时还是挺蒙的,因为在python中并没有明显的区别,但是在go中却是两个完全不同的东西。在官方的解释中,方法是包含了接收者的函数。 定义 函数的格式是固定的Func + 函数名 + 参数 + 返回值(可选) + 函数体 Func 阅读全文
posted @ 2019-03-17 12:47 Dwyane.wang 阅读(5562) 评论(0) 推荐(0)
摘要:相同点 由相同类型的元素组合构成 元素有序排列,0为第一个元素下标 基本使用方法相同 区别 array声明时需要指定容量大小,而且无法修改 slice可通过append增加元素,当容量不够时,会自动扩容 array传递类型:值拷贝;slice传递类型:引用拷贝(有两种情况坑) 声明 var arra 阅读全文
posted @ 2018-12-02 17:35 Dwyane.wang 阅读(304) 评论(0) 推荐(0)