GO语言学习
自在逍遥
@七牛云存储
展开
-
二、slice和数组的区别,map的注意事项 -go语言笔记
这次要说说array,slice,map。虽然前面已经说过了,但是实际使用中发现对这几个的使用和理解还是不够详细现在再重新看看这几个类型array类型array是固定长度的数组,这个和C语言中的数组是一样的,使用前必须确定数组长度。但是和C中的数组相比,又是有一些不同的: 1 Go中的数组是值类型,换句话说,如果你将一个数组赋值给另外一个数组,那么,实际上就是将整个数组拷贝一份原创 2016-03-17 14:07:11 · 5032 阅读 · 0 评论 -
GO语言Comma-ok断言
Comma-ok断言的语法是:value, ok := element.(T)。element必须是接口类型的变量,T是普通类型。如果断言失败,ok为false,否则ok为true并且value为变量的值。来看个例子:package mainimport ( "fmt")type Html []interface{}func main() { html := make(Html,原创 2016-07-26 18:52:32 · 4295 阅读 · 0 评论 -
Docker笔记
docker 镜像启动docker instance: sudo docker run -t -i training/sinatra /bin/bash :)导出镜像docker save -o ubuntu.tar ubuntu:14.04载入镜像docker load –input ubuntu.tar移除本地镜像docker rmi training/sinatra 注意 docker rm原创 2016-07-26 18:51:39 · 1451 阅读 · 2 评论 -
九、Go语言库之strconv包--GO语言笔记
package mainimport "fmt"import "strconv"func main() { /* 由于将字符串转为其他数据类型可能会出错,strconv 包定义了两个 error 类型的变量:ErrRange 和 ErrSyntax。 其中,ErrRange 表示值超过了类型能表示的最大范围,比如将 "128" 转为 int8原创 2016-04-29 17:15:29 · 3155 阅读 · 0 评论 -
八、Go语言包之strings--go语言学习笔记
package mainimport ( "fmt" "unicode" "strings")func main() { //是否存在某个字符串 str := "a has a b" subStr := "a" subAny := "ab" fmt.Println("contains:%t", strings.Contains(st原创 2016-04-29 16:58:40 · 5896 阅读 · 0 评论 -
七、GO语言库学习--net/url包--go语言笔记
QueryEscape(s string) stringescape 转义string 到url queryQueryUnescape(s string) (string,err)转化 %AB 为 byte 0xAB 以及 ‘+’ 到 ’ ’ (space)type Errortype Error struct { Op string URL string原创 2016-04-29 16:40:08 · 12205 阅读 · 0 评论 -
一、go语言基础流程控制,语法,反射特性--go语言笔记
for循环sum := 1for ; sum < 1000; { sum += sum}for sum<1000{ sum ++}在第5行中,我们把很多值聚合在了一个case里面,同时,Go里面switch默认相当于每个case最后带有break,匹配成功后不会自动向下执行其他case,而是跳出整个switch, 但是可以使用fallthrough强制执行后面的case代码。原创 2016-04-13 16:17:15 · 2187 阅读 · 1 评论 -
六、go语言一些常用方法--go语言笔记
遍历以及mapfor i,value range slice{}//方式一ages:=make(map[string]int)//方式二ages:=map[string]int{ “alice”:31, “charlies”:34,}//delete 一个元素delete(ages,"alice")ages["bob"] = ages["bob"] + 1 //如果原创 2016-04-05 13:41:24 · 1815 阅读 · 0 评论 -
五、go语言特性--go语言笔记
deferdefer:调用一个被 defer 的函数时在函数刚要返回之前延迟执行,当函数无论怎样返回,某资源必须释放时,可用这种与众不同、但有效的处理方式。传统的例子包括解锁互斥或关闭文件。这样延迟一个函数有双重优势:一是你永远不会忘记关闭文件,此错误在你事后编辑函数添加一个返回路径时常常发生。二是关闭和打开靠在一起,比放在函数尾要清晰很多。package mainimport "log"func原创 2016-04-05 13:37:21 · 620 阅读 · 0 评论 -
四、golang类型讲解--go语言学习笔记
擅自使用了七牛大牛们的PPT资料,希望不要怪罪,这里谢谢大牛们的分享。映射 map一个”键-值”对关键点:注意并发读写情况,上锁不能对未初始化的 map 进行写,会抛异常(panic)对于迭代操作,每次结果可能不一致(乱序)var m map[string]intm["k1"] = 7 // 错误: assignment to entry in nil mapm := make(map[原创 2016-04-05 13:34:56 · 1066 阅读 · 0 评论 -
三、go语言操作 mongodb mgo --go语言学习笔记
mgo使用指南mgo简介 mgo(音mango)是MongoDB的Go语言驱动,它用基于Go语法的简单API实现了丰富的特性,并经过良好测试。官方网站:http://labix.org/mgo。golang.tc(golangtc.com)网站的数据存储就是是用的MongoDB+mgo。近一年使用下来表现良好。API文档 下面是mgo、mgo/bson、mgo/txn的在线文档。mgo GoDo原创 2016-04-05 13:31:46 · 16834 阅读 · 10 评论 -
GO语言高并发学习心得体会
信号sigRecv1:=make(chan os.Signal,1)sigs1:=[]os.Signal{syscall.SIGINT,syscall.SIGQUIT}signal.Notify(sigRecv1,sigs1...)sigRecv2:=make(chan os.Signal,1)sigs2:=[]os.Signal{syscall.SIGINT,syscall.SIGQUIT原创 2016-07-26 18:53:30 · 5674 阅读 · 0 评论