----------------------------------------- error 使用 (異常處理)java
// 語法 (普通錯誤) import "errors" func funName(paratemer) (result int, err error) { err = errors.New("自定義錯誤信息") }
----------------------------------------- panic 使用 (異常處理)python
// 語法 (致命錯誤) panic("自定義錯誤信息") // 直接中斷應用程序 // 好比數組越界、空指針異常都是 go 內部實現的 panic 函數
----------------------------------------- recover 使用 (異常處理)正則表達式
// 語法 (恢復錯誤) // recover 必須放在 defer 後面使用 defer func() { // recover() if err := recover(); err != nil { // 產生了panic異常 fmt.Println(recover()) } }() // 註解:defer 方法執行完成後執行、 ()默認調用匿名函數
----------------------------------------- 字符串處理json
// 方法 // 基礎操做: // 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轉結構體)spa
func main() { var tmp IT json.Unmarshll([]byte(jsonValue), &tmp) // print tmp }
----------------------------------------- IO 操做 文件指針
// Create / NewFile / Open / OpenFile // ... documents