一、错误处理
1、Error
1.1
1. fmt.Errorf("错误")
2. err := errors.New("错误")
2、panic(致命错误:数组越界、空指针等)
2.1 显示调用
panic("this is test")
2.2 被动触发
var a [10]int
a[20] = 111
3、recover(致命错误不奔溃)
3.1
defer func(){
//recover()
//fmt.Println(recover())
if err := recover();if err != nil{
fmt.Pirntlb(err)
}
}()
var a [10]int
a[20] = 111
二、文本文件操作
1、字符串常用操作
1.1 Contains (是否包含子串)
fmt.Println(strings.Contains("hellocgo","hello"))
1.2 Join (组合)
s := []string{"aaa","bbb","ccc"}
buf := strings.Join(s,".")
fmt.Println(s)
1.3 Index(索引,子串所在位置)
fmt.Println(strings.Index("abchellocgo","hello"))//3,没有就返回-1
1.4 Repeat(重复)
fmt.Println(strings.Repeat("go",3))//gogogo
1.5 Split(拆分,存入切片)
buf = "abc,sfsd,sadf"
s2 := strings.Split(buf,",")
fmt.Println("s2=",s2)
1.6 Trim(去掉两头的指定字符)
s3 := strings.Trim(" are u ok "," ")
1.6 Fields(去掉空格,放入切片)
s4 := strings.Fields(" are u ok "," ")
for i,data := range s4{
fmt.Println(i,",",data)
}
2、字符串转换
2.1 Append(将整数等转化后增加到现有的字节数组中)
slice := make([]byte,0,1024)
slice = strconv.AppendBool(slice,true)
slice = strconv.AppendInt(slice ,124,10)
slice = strconv.AppendQuote(slice,"hellogo")
fmt.Println(string(slice))
2.2 Format
var str string
str = strconvFormatBool(false)
str = strconvFormatFloat(3.14,'f',-1,64)
str = strconvItoa(666)
2.3 Parse
var flag bool
var err error
flag,error = strconvParseBool("true")
a,_ = strconv.Atoi("567")
3、正则表达式(模式匹配)
buf := "acb adb aef arb"
reg1 = regexp.MustCompile(`a.b`)
result1 := reg1.FindAllStringSubatch(buf,-1)
4、JSON
4.1 生成
4.1.1 通过结构体生成(成员变量首字母必须大写)
s1, _ := json.Marshal(s)
s1, _ := json.MarshalIndent(s,""" ")//格式化
- 如果要改成小写则需要
json:"xxxxx"
二次编码json:"-"
此字段不会输出到屏幕`json:",string"输出为字符
4.1.2 通过map生成
m := make(map[string]interface{},4)
m["xxx"] = "xxx"
4.2 解析
4.2.1 解析到结构体
err := json.Unarshal([]byte(jsonBuf),&tmp)
m["xxx"] = "xxx"
4.2.2 解析到map
需要用断言提取
5、文件操作
5.1 建立与打开
网友评论