美文网首页
go基本语法操作

go基本语法操作

作者: 洛奇lodge | 来源:发表于2019-01-12 11:40 被阅读0次

    异常处理

    异常类型error
    import "errors"
    import "fmt"
    
    func main() {
        // 定义并初始化异常类型
        var err1 error = errors.New("这是一个错误")
        fmt.Println(err1)
    
        var err2 error = fmt.Errorf("这也是一个错误")
        fmt.Println(err2)
    }
    
    异常捕获recover
    func main() {
        // 异常捕获方式, 需要捕获哪个函数的异常,就需要放在哪个函数内部的第一位
        defer func() {
            if err := recover(); err != nil {
                fmt.Println()
            }
        }()
    
        a := 12
        fmt.Println(a)
    
        c1 := 12
        c2 := 0
        c := c1 / c2
        fmt.Println(c)
    }  
    // 结果
    // 12
    // runtime error: integer divide by zero
    
    异常抛出panic
    func Test() {
        panic("这是一个致命错误,抛出异常")
    }
    

    字符串处理

    字符串常用操作
    import strings
    
    func main() {
        // Contains 字符串包含判断
        strings.Contains("wwwwuuee", "uuee")  // ture
        strings.Contains("wwwwuuee", "ue1")  // false
    
        // Join 字符串拼接
        s := []string{"abc", "hello", "world"}
        string.Join(s, "@")  // "abc@hello@world"
    
        // Index 查找字符串位置
        string.Index("hellopython", "python")  // 5, 不存在返回-1
    
        // Repeat 使字符串重复出现多次
        string.Repeat("go", 2)  // "gogo"
    
        // Split 指定字符分割字符串
        string.Split("ni,hao,nishni", ",") // [ni hao nishni]
    
        // Trim根据指定字符,去掉首尾的空格字符串
        string.Trim("  are you ok    ", " ")  // "are you ok"
    
        // Fields以空格字符切割字符串,类似Split
        strings.Fields("  are you ok    ")  // [are you ok]
    
        // Replace将字符串的某个字符替换 (原字符串, 要替换字符, 新的字符,替换数量)
        strings.Replace("gougougo", "go", "python", 2) // "pythonupythonugo"
    }
    
    
    

    正则表达式

    import "regexp"
    
    func main() {
        // 解释规则
        reg := regexp.MustCompiles(`正则表达式`)  // 反引号是原生字符串
        if reg == nil {
            panic("error")
        }
    
        // 匹配得到结果
        result = reg.FindAllStringSubmatch("要匹配字符串", -1) // -1表示全部匹配
    }
    

    JSON处理

    import "encoding/json"
    
    // 变量名必须大写, 如果想变量名小写,则需要转换
    type Person struct {
        Name string `json:"name"`  // 变量名小写
        Id   int `json:"-"`        // 不会输出到屏幕上
        Age  float32 `json:", string"`  // json时候改变变量名的数据类型
    } 
    
    func main() {
        s := Person{}
        // 将结构体或map转换为json
        // resp, err := json.Marshal(s)
        resp, _ := json.MarshalIndent(s, "", " ")  // 格式化输出json结构 
    
        // 将json转换为结构体或map
        map2 := make(map[string]interface{})
        json.Unmarshal(resp, &map2)
    }
    

    相关文章

      网友评论

          本文标题:go基本语法操作

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