Go Basics
基本语法
建议大家过一遍goexample的例子, 如果大家用emacs,可以org里面插入go代码,C-c C-c直接运行 出结果,非常方便哈
hello, world!
|
|
Hello, World!
打印
打印对象
|
|
变量
golang的变量类型有
基础类型
字符串string
字符串关键字string 两个字符串拼接可以相加
|
|
string hello, liuliancao hello, liuliancao hello, liuliancao
字符串替换
整数int
int8,int16,int32, int64, uint8, uint16, uint32, uint64等 整数常见的有移位,与&或|非^等操作
|
|
int default is: 0 uint default is 0 bool default is: false is32: false is64: true uint max is: 18446744073709551615 int max is: 9223372036854775807
浮点数float
float32或者float64
布尔值bool
true或者false,关键词bool
派生类型
指针pointer
数组array
结构体struct
channel类型
函数类型func
切片类型slice
接口类型interface
Map类型
类型转换
float to int
|
|
51 3 51
string to float
|
|
int to string
bytes to int
bytes to string
一般string,但是也可能出现问题
如果是数字,可以fmt.Sprintf("%x", variables)或者用hex.EncodeToString(variables)进行转换
json.Number to int
正则匹配
|
|
hello, world!not match spaces match spaces
注意下\s这种需要转义下
hello, world!not match spaces match spaces
文件相关
判断文件是否存在
|
|
/Users/liuliancao/.vimrc exists. /Users/liuliancao/.vimrc2 not exists.
文件读写
|
|
json相关
json simple type
|
|
true 1 "hello" ["this","is","test"] {"a":"z","b":"y"}
jsonlike str to json
|
|
map[code:200 data:1 msg:test] <nil> { 0} <nil>
json to json str
嵌套json
可以使用simplejson
|
|
或者定义struct和json.Unmarshal
网络相关
了解下net模块
获取本机所有ip
|
|
iface name: ens33 iface mac: 00:0c:29:c4:38:b7 iface flags up|broadcast|multicast [192.168.10.204] 114.114.114.114 is private? false 127.0.0.1 is private? false 192.168.16.1 is private? true
根据类似192.168.10.0/24获取ip和网段
泛型
建议学习下这篇文章
标准库
flag
flag一般用来做命令行参数解析工具,使用也比较简单哈