
go
文章平均质量分 50
btqszl
这个作者很懒,什么都没留下…
展开
-
ECDH
ECDH是一个椭圆曲线Diffie-hellman密钥交换方法的go实现https://github.com/wsddn/go-ecdhDiffie-hellman是一种确保共享KEY安全穿越不安全网络的方法,这个机制的巧妙在于需要安全通信的双方可以用这个方法确定对称密钥,然后可以用这个密钥进行加密和解密这种密钥交换技术的目的在于使得两个用户安全地交换一个秘密密钥以便用于以后的报文转载 2017-02-24 09:42:22 · 1557 阅读 · 0 评论 -
go交叉编译
交叉编译就是在一个平台上生成另一个平台上的可执行代码。“既然我们已经有了主机编译器,那为什么还要交叉编译呢?”其实答案很简单。有时是因为目的平台上不允许或不能够安装我们所需要的编译器,而我们又需要这个编译器的某些特征;有时是因为目的平台上的资源贫乏,无法运行我们所需要编译器;有时又是因为目的平台还没有建立,连操作系统都没有,根本谈不上运行什么编译器。通过设置GOOS、GOARCH环境变量来转载 2017-03-23 16:14:05 · 1161 阅读 · 0 评论 -
go new make
go 内置函数new func new(Type) *Type内置函数 new 分配空间。传递给new 函数的是一个类型,不是一个值。返回值是 指向这个新分配的零值的指针go的内建函数make func make(Type, size IntegerType) Type 内建函数 make 分配并且初始化 一个 slice, 或者 map 或者 chan 对转载 2017-05-07 21:36:24 · 286 阅读 · 0 评论 -
Go中的系统Signal处理
原文 http://tonybai.com/2012/09/21/signal-handling-in-go/我们在生产环境下运行的系统要求优雅退出,即程序接收退出通知后,会有机会先执行一段清理代码,将收尾工作做完后再真正退出。我们采用系统Signal来 通知系统退出,即kill pragram-pid。我们在程序中针对一些系统信号设置了处理函数,当收到信号后,会执行相关清理程序或通知各转载 2017-05-16 19:58:32 · 994 阅读 · 0 评论 -
go的http包
type Handler interface { ServeHTTP(ResponseWriter, *Request)}type HandlerFunc func(ResponseWriter, *Request) HandlerFunc为特定函数类型The HandlerFunc type is an adapter to allow the use of ordi原创 2017-05-18 17:00:08 · 377 阅读 · 0 评论 -
go语言时间操作一些坑
go的时间操作使用time包time.Now()返回本地时间Time// Now returns the current local time.func Now() Time { sec, nsec := now() return Time{sec + unixToInternal, nsec, Local}}time.Now().Unix() 把Time转原创 2017-05-19 18:45:35 · 2699 阅读 · 0 评论 -
go的slice传参
直接上代码func main() { a := []int{1,2,3} b := []int{4,5,6} c := []int{7,8,9} a = a[1:] fmt.Println("a", a) func(x []int){ fmt.Println("x", x, &x[0])原创 2017-07-04 17:54:22 · 867 阅读 · 0 评论 -
go 匿名字段
原文: http://studygolang.com/articles/781定义一个struct,定义的时候是字段名与其类型一一对应,实际上Go语言支持只提供类型,而不写字段名的方式,也就是匿名字段,或称为嵌入字段。当匿名字段是一个struct的时候,那么这个struct所拥有的全部字段都被隐式地引入了当前定义的这个struct。type Human struct {转载 2017-03-07 11:26:52 · 864 阅读 · 0 评论 -
go语言map的内部实现及传参
我们知道go的内置函数make返回一个Type类型的对象func make(Type, size IntegerType) Type 然后直接上源码:// Builds a type representing a Hmap structure for the given map type.// Make sure this stays in sync with ../../.原创 2017-08-28 17:40:00 · 2151 阅读 · 0 评论 -
fabric-sdk-go
Hyperledger Fabric Client SDK for Gogo get -u github.com/hyperledger/fabric-sdk-go文档 https://godoc.org/github.com/hyperledger/fabric-sdk-go兼容性fabric v1.0.1 & fabric-ca v1.0.1fabri原创 2017-10-31 10:39:26 · 4634 阅读 · 7 评论 -
compile: version "" does not match go tool version ""
在linux环境下,更新go语言版本呢后,报错 compile: version "" does not match go tool version ""问题的github追踪 https://stackoverflow.com/questions/46693653/compile-version-go1-9-does-not-match-go-tool-version-go1-9-1...转载 2018-02-22 18:34:28 · 10998 阅读 · 0 评论 -
go的并发编程goroutine
首先搞清楚几个概念线程实现模型主要有三种:KSE是内核调度实体,又称内核级线程,就是可以被内核调度器调度的对象用户级线程模型:此模型下的线程由用户级别的线程库管理,线程库在进程的用户空间中。包含多个用户级线程的进程 只与一个KSE对应,又被称为M:1线程模型 优点:线程切换不需要让CPU从用户态切换到内核态 缺点:多线程原创 2017-04-04 14:21:46 · 687 阅读 · 0 评论 -
go可变参数
package mainimport "fmt"func Greeting(prefix string, who ...string) { //上面的三个点(…)就表示who是一个可变参数。在函数Greeting中,参数who是被当做一个slice来处理。for _, name := range who {fmt.Println(prefix, na转载 2017-03-14 11:23:26 · 671 阅读 · 0 评论 -
go的io包
原文地址:http://www.cnblogs.com/golove/p/3276678.htmlfunc ReadFull(r Reader, buf []byte) (n int, err error) 这个函数可以把对象 r 中的数据读出来,然后存入一个缓冲区 buf 中,以便其它代码可以处理 buf 中的数据。 这里有个问题,ReadFull 函数究转载 2017-03-28 10:01:22 · 354 阅读 · 0 评论 -
go语言定时操作
ticker Timers are for when you want to do something once in the future - tickers are for when you want to do something repeatedly at regular intervals. 这个对象以指定的时间间隔重复的向通道 C 发送时间值 ticker :转载 2017-03-22 09:41:26 · 744 阅读 · 0 评论 -
go的defer和return执行顺序
defer是在return之前执行的return xxx这一条语句并不是一条原子指令! 只是把返回值赋值给返回变量,函数并没有带着返回值返回结果func f() (result int) { //相当于在函数体内定义一个变量result defer func() { //在return后执行,修改返回变量result(result==1) result++转载 2017-03-15 20:08:12 · 738 阅读 · 0 评论 -
go的json处理
原文地址:https://github.com/astaxie/build-web-application-with-golang/blob/master/zh/07.2.mdGo的JSON包中有如下函数 func Unmarshal(data []byte, v interface{}) error详细的解析例子请看如下代码: package main转载 2017-03-08 15:48:19 · 768 阅读 · 0 评论 -
go的数组与slice
//slice默认cap等于len var a []int = make([]int, 2) fmt.Println(len(a)) //2 fmt.Println(cap(a)) //2 fmt.Println(a) //[0,0] fmt.Println(&a[0]) //0xc21001e140 //当len长度增长超过cap时,会重新分配内存并复制sli原创 2017-03-14 14:50:12 · 489 阅读 · 0 评论 -
go的log4go日志包
过滤器表示日志级别,在该级别以下,不写入日志记录到相关联的LogWriter。 stdout console DEBUG过滤器表示日志级别,在该级别以下,不写入日志记录 相关联的LogWriter。转载 2017-03-22 15:43:36 · 644 阅读 · 0 评论 -
go语言方法调用类型
go语言函数调用仅与方法的调用类型(N or *N)有关,与调用对象类型(N or *N)无关type Int intfunc(a Int) add(b Int){ a += b}func main() { var a Int = 0 b := &a a.add(1) fmt.Println(a) //0 b.原创 2017-03-22 19:55:54 · 1751 阅读 · 0 评论 -
go语言接口赋值
type Int intfunc(a *Int) Add(b Int) { *a += b}func(a Int) Less(b Int) bool{ return a }type LessAdder interface { Less(b Int) bool Add(b Int)}func main()原创 2017-03-22 20:33:23 · 1001 阅读 · 0 评论 -
go语言的位运算符
x x >> y 右移 124 >> 2 124/2/2 //结果31转载 2017-03-14 10:19:58 · 515 阅读 · 0 评论 -
go的并发机制goroutine
goroutine就是go语言版本的协程(coroutine),协程也被称为轻量级线程子程序调用是通过栈实现的,一个线程就是执行一个子程序。子程序调用总是一个入口,一次返回,调用顺序是明确的。而协程的调用和子程序不同。协程看上去也是子程序,但执行过程中,在子程序内部可中断,然后转而执行别的子程序,在适当的时候再返回来接着执行。协程的特点在于是一个线程执行,那和多转载 2017-03-23 18:36:16 · 554 阅读 · 0 评论 -
go语言版本控制
在使用Golang过程中,我们发现Golang程序缺少依赖库版本功能是一个非常令人头大的问题:某些依赖在某个commit之后发生了API变更之后,如果不修改代码很难兼容,然而开发者之间很有可能因为参与的时间不同,导致执行 go get 命令获取的版本不同,而导致在不同电脑上出现编译不通过问题。同时,在多个程序中,如果使用的commit版本不同,也可能会导致程序编译过程中出现不同的问题。在Golan...转载 2018-04-26 11:30:09 · 2003 阅读 · 0 评论