Golang常用知识

一、switch语句:
1、switch之后可以不接条件表达式
2、case后条件表达式不限制于常量或整形,且可以有多个可选值。
3、case中的语句不需要写break来退出,但如果想继续执行下一个case需要用fallthrough关键字。
4、多个case公用一种处理
正确方式:
case A, B, C:
...
错误方式:
case A:
case B:
case C:
...

二、struct
type Test struct {
Val1 string json:"val1"
Val2 string bson:"val2"
Val3 string json:",omitempty"
Val4 string json:"-"
}
json:json序列化时,key的值。
bson:存储在mongo时,字段名的值。
omitempty:如果值为空(默认值),则忽略该字段。
-:直接忽略该字段。

三、http
res, err := http.Get(req.Url)
res.StatusCode

四、字符串
1、长度
在 Golang 中,如果字符串中出现中文字符不能直接调用 len 函数来统计字符串字符长度,这是因为在 [Go]中,字符串是以 UTF-8 为格式进行存储的,在字符串上调用 len 函数,取得的是字符串包含的 byte 的个数。
所以字符串长度需要通过len([]rune(str))来获取。
2、切割
golang字符串截取需要先将字符串转为切片,然后利用切片操作进行截取。
所以先进行这样的转换strs:=[]rune(stro),然后再通过sub:=strs[start:end](end大于等于start)进行截取,注意截取结果包含start不包含end。
3、与整型的转换
string转int:strconv.Atoi(string)
int转string:strconv.Itoa(int)
string转int64:strconv.ParseInt(string, 10, 64)
int64转string:strconv.FormatInt(int64,10)
4、正则
例如,一段内容中多个换行替换为一个换行,使得内容显示时没有空白行
regbr := regexp.MustCompile("(\r\n)+")
content = regbr.ReplaceAllString(content, "\r\n")

五、命令行
1、编译成指定命名的执行文件
go build -o xxxx main.go

六、time包
1、当前时间戳:
time.Now().Unix()
2、时间戳转格式化字符串:
time.Unix(1389058332, 0).Format("2006-01-02 15:04:05")
3、格式化字符串转时间戳:
the_time, _ := time.Parse("2006-01-02 15:04:05", datetime)
unix_time := the_time.Unix()
但是此方法转成的the_time是UTC时间,所以再用unix_time转成格式化字符串时,可能会与最开始传进来的datetime不一样。这种情况可以用另一个方法来解决:
the_time, _ := time.ParseInLocation("2006-01-02 15:04:05", datetime, time.Local)
unix_time := the_time.Unix()
4、获取当天0点0分0秒的时间戳
t:=time.Now() now:=time.Date(t.Year(),t.Month(),t.Day(),0,0,0,0,t.Location()).Unix()

七、iota
iota是golang语言的常量计数器,只能在常量的表达式中使用。
iota在const关键字出现时将被重置为0(const内部的第一行之前),const中每新增一行常量声明将使iota计数一次(iota可理解为const语句块中的行索引)。
使用iota能简化定义,在定义枚举时很有用。
例如定义ErrorCode:
type ErrorCode int
const (
ParamError ErrorCode = iota + 1 // 1
DBError // 2
HttpError // 3
RpcError // 4
)

八、break label
我们在for多层嵌套时,有时候需要直接跳出所有嵌套循环, 这时候就可以用到go的label breaks特征了。
Exit:
for i := 0; i < 9; i++ {
for j := 0; j < 9; j++ {
if i+j > 15 {
fmt.Print("exit")
break Exit
}
}
}
break将直接退出两层循环。

九、数据库操作
mysql:http://www.cnblogs.com/tsiangleo/p/4483657.html

十、数据结构
1、map类型中key如果有int是不能进行json序列化的
2、如果一个字段参数类型不固定,可将其声明为interface{}
3、float64类型转int或int64
var f float64 = 3.23
var i int = int(f)
var i64 int64 = int64(f)
4、float格式化输出
a:=strconv.FormatFloat(10.1,'f',2,64),输出10.10
a := strconv.FormatFloat(10.010, 'f', -1, 64),输出10.01

十一、make报错
1、clone下来tidb的代码以后,执行make,报错unrecognized import path "golang.org/x/tools/go/xxxx",解决办法:git clone https://github.com/golang/tools.git $GOPATH/src/golang.org/x/tools到本地后,重新make。

十二、main启动过程
http://blog.csdn.net/rznice/article/details/18987047

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,530评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 86,403评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,120评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,770评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,758评论 5 367
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,649评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,021评论 3 398
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,675评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,931评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,659评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,751评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,410评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,004评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,969评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,203评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,042评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,493评论 2 343

推荐阅读更多精彩内容