网站首页 返回列表 “慢生活”不是懒惰,放慢速度不是拖延时间,而是让我们在生活中寻找到平衡。
go语言RSA API使用示例
go语言RSAAPI使用示例第零步:常用的包__import("os""fmt""log""errors""io/ioutil""crypto/rsa""crypto/rand""crypto/x509""crypto/sha256""encoding/pem""encoding/base64")第一步:生成RSA密钥...
阅读全文
go语言为什么没有min/max(int, int)函数
golang为什么没有min/max(int,int)函数我们知道go语言math包里面定义了min/max函数,但是是float64类型的,而并没有整数类型的min/max。go语言的math包里面定义的min/max函数如下:__math.Min(float64,float64)float64math.Max(fl...
阅读全文
go语言build和install, 以及包名的关系
这篇文件介绍gobuild与goinstall的用法,包括包和可执行文件的关系,包的命名关系。用法`$gobuild/install`说明:是从$GOPATH/src路径下面的目录名,例如:1.$goinstalllib编译安装packagelib2.$goinstalllib2lib/util同时编译安装lib2和l...
阅读全文
go语言测试框架
go语言内置的测试框架能够完成基本的功能测试,基准测试,和样本测试。测试框架*go语言测试单元以包为单位组织,包含包里的一个或者多个测试文件。*测试文件以_test.go结尾,通常放在待测代码相同目录下,即他们属于同一个包。*测试用例以TestXxxx/ExampleXxxx/BenchmarkXxxx的格式组织在测试...
阅读全文
go语言的变量声明并赋值运算符(:=)
go语言的变量声明并赋值运算符(:=)基本功能声明并且赋值一个变量,其好处是不需要写var三个字母,另外不需要写类型,go语言会自动根据赋值的内容确定类型(但是这一点我不觉得是优点,因为就不知道变量的类型是什么了)。格式:var:=value使用限制不能在函数外面使用,即不能用来声明全局变量。==例子1__$catma...
阅读全文
go语言得到子程序的返回值
go语言调用外部程序,并获取外部程序的返回值。例子1:程序返回0__$catmain.gopackagemainimport("fmt""os/exec")funcmain(){cmd:=exec.Command("test.sh")err:=cmd.Run()iferr!=nil{fmt.Printf("Return...
阅读全文
go语言从终端读取内容
从stdin读取命令__packagemainimport("os""fmt""bufio""strings")funcmain(){stop:=falsefor!stop{reader:=bufio.NewReader(os.Stdin)fmt.Print("Entertext:")text,_:=reader.Re...
阅读全文
Go 语言的锁
Go语言提供两类锁:互斥锁(Mutex)和读写锁(RWMutex)。其中读写锁(RWMutex)是基于互斥锁(Mutex)实现的,我们看读写锁的定义(sync/rwmutex.go):__typeRWMutexstruct{wMutex//heldiftherearependingwriterswriterSemuin...
阅读全文
go语言的类型assertion和类型switch
首先首先类型assertion和类型switch只能作用于interface{},不能是其他类型。__funcmain(){varvstring="hello"//varvinterface{}=“hello"s,ok:=v.(string)fmt.Println("s=",s,",ok=",ok)switchv.(t...
阅读全文
go语言操作map
go语言map对象的定义go语言定义map通常我们会看到三种方式__varm1map[string]stringvarm2map[string]string=map[string]string{}//orm2:=map[string]string{}varm3map[string]string=make(map[str...
阅读全文
go语言读取当前文件名行号和函数名
当我们需要打印日志的时候经常会需要标示当前的代码位置信息,包括所在文件名,行号,以及所在函数等等;特别是在处理log信息的时候。go语言提供的runtime和reflect库可以帮助我们获取这些信息。下面是一个重写的log函数例子;自定义了一套log接口:ENTRY/EXIT/INFO/DEBUG等等,这些接口都是相似...
阅读全文
go语言实现双向TLS认证的REST Service
用go语言开发一个RESTService例子,实现服务器和客户端双向认证服务器端代码如下__packagemainimport("fmt""log""flag""net/http""io/ioutil""crypto/tls""crypto/x509""encoding/json""github.com/gorilla...
阅读全文
go语言函数变参
例子函数变参的定义:funcPrintf(formatstring,a...interface{})(nint,errerror){...}调用方式Printf("%s-%d-%s","AAA",123,"BBB")传递方式在函数调用的时候,caller会把所有的变参转换成一个slice对象,然后传递给callee,_...
阅读全文
go语言的defer语句
go语言defer语句的用法defer的语法defer后面必须是函数调用语句,不能是其他语句,否则编译器会出错。__packagemainimport"log"funcfoo(nint)int{defern++//deferlog.Println("n=",n)returnn}funcmain(){variint=10...
阅读全文