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
  • 相关阅读:
    onmouseover事件
    ref:ThinkPHP Builder.php SQL注入漏洞(<= 3.2.3)
    ref:mysql命令大全
    ref:mysql丢失密码,如何修改?
    ref:学习笔记 UpdateXml() MYSQL显错注入
    转:[译]CSV 注入:被人低估的巨大风险
    转:深入剖析 JavaScriptCore
    转:Exploiting Electron RCE in Exodus wallet
    转:LNMP虚拟主机PHP沙盒绕过/命令执行(php exec命令被禁之后)
    转:Ubuntu16.04下配置php+vscode+xdebug开发环境
  • 原文地址:https://www.cnblogs.com/loongsoft/p/9399614.html
Copyright © 2011-2022 走看看