第五天

2019-03-26  本文已影响0人  可问春风渡江陵

一、错误处理

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,""" ")//格式化

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 建立与打开

上一篇下一篇

猜你喜欢

热点阅读