zoukankan      html  css  js  c++  java
  • C#/JAVA 程序员转GO/GOLANG程序员笔记大全(DAY 05)

    ----------------------------------------- error 使用 (异常处理)

    // 语法   (普通错误)
    import "errors"
    func funName(paratemer) (result int, err error) {
        err = errors.New("自定义错误信息")
    }


    ----------------------------------------- panic 使用 (异常处理)

    // 语法   (致命错误)
    panic("自定义错误信息") // 直接中断应用程序
    // 比如数组越界、空指针异常都是 go 内部实现的 panic 函数


    ----------------------------------------- recover 使用 (异常处理)

    // 语法      (恢复错误)
    // recover 必须放在 defer 后面使用
    defer func() {
        // recover()
        if err := recover(); err != nil {    // 产生了panic异常
            fmt.Println(recover())
        }
    }()    // 注解:defer 方法执行完成后执行、 ()默认调用匿名函数

    ----------------------------------------- 字符串处理

    // 方法 
    // 基础操作:
    // Contains / Join / Index / Repeat / Repalce / Split / Trim / Fields
    // 转换:
    // Append / Format / Parse


    ----------------------------------------- regexp 正则表达式

    import "regexp"
    
    func main() {
        buf := "0.2 456 asdx 1.233 7. 8.99 aloong 6.66"
    
        reg := regexp.MustCompile(`d+.d`)
        if reg == nil {
            // ... error
            return
        }
        
        result := reg.FindAllString(buf, -1)
        // print result
        result = reg.FindAdllStringSubmatch(buf, -1)
    }


    ----------------------------------------- json 的使用 (结构体转JSON)

    import (
        "encoding/json"
        "fmt"
    )
    // 根据结构体转换 JSON
    type IT struct {
        Company  string            
        /*
        // struct_tag 的使用,语法:
        Company  string  `json:"company"` // 二次编码
        Company  string  `json:"-"` // -代表该字段不会输出到屏幕
        IsOK     bool      `json:",string"` // 转string
        */
        Subjects []string
        IsOK     bool
        Price      float64
    }
    
    func main() {
        s := IT{"it", []string{"C#", "java", "python", "go"}, false, 666.66}
        
        //buf, err := json.Marshal(s)
        buf, err := json.Marshal(s, "", " ") // 格式化编码
        if err != nil {
            // print err
            return
        }
        
        fmt.Println(string(buf))
    }


    ----------------------------------------- json 的使用 (map转JSON)

    func main() {
        m := make(map[string]interface{}, 1) // interface{} 万能数据类型
        m["company"] = "loongsoft"
        
        result, err := json.MarshalIndent(m, "", " ")
        // println(string(result))
    }


    ----------------------------------------- json 的使用 (JSON转结构体)

    func main() {
        var tmp IT
        json.Unmarshll([]byte(jsonValue), &tmp)
        // print tmp
    }


    ----------------------------------------- IO 操作 文件

    // Create / NewFile / Open / OpenFile
    // ... documents
  • 相关阅读:
    EYES组——软件体系结构上机规划
    淘宝软件架构分析分工
    淘宝网系统架构分析以及数据库架构简介
    关于编译器与解释器的区别
    Web前端之高斯模糊图片记
    解决JS浮点数(小数)计算加减乘除的BUG
    JS滚轮事件(mousewheel/DOMMouseScroll)了解
    阻止事件冒泡
    记一次编码相关问题
    细说Form(表单)
  • 原文地址:https://www.cnblogs.com/loongsoft/p/9399614.html
Copyright © 2011-2022 走看看