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
以上是 C#/JAVA 程序员转GO/GOLANG程序员笔记大全(DAY 05) 的全部内容, 来源链接: utcz.com/z/391842.html