第五天

作者: 可问春风渡江陵 | 来源:发表于2019-03-26 10:37 被阅读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

    • recover只有在def调用的函数中有用
    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 建立与打开

    相关文章

      网友评论

          本文标题:第五天

          本文链接:https://www.haomeiwen.com/subject/hfawvqtx.html