Go語言從入門到精通六 JSON操作及錯誤處理

2021-09-11 01:30:07 字數 2526 閱讀 3604

json是一種輕量化的格式(相比於xml),是當下流行的一種前後端互動的資料格式。其工作模式如下:

)//把結構體都改小寫

type user struct

func

teststruct()

//開始json序列化

data, err := json.

marshal

(user1)

if err !=

nil fmt.

printf

("%s\n"

, data)

}func

main()

package main

import

("encoding/json"

"fmt"

)func

testmap()

)//必須初始化map分配記憶體

m["username"]=

"user1"

m["age"]=

18 m[

"***"]=

"男" fmt.

println

(m) data, err := json.

marshal

(m)if err !=

nil fmt.

printf

("%s\n"

, data)

}func

main()

package main

import

("encoding/json"

"fmt"

)func

testslice()

m :=

make

(map

[string

]inte***ce

) m[

"username"]=

"user1"

m["age"]=

18 m[

"***"]=

"男" s =

(s, m)

m =make

(map

[string

]inte***ce

) m[

"username"]=

"user2"

m["age"]=

17 m[

"***"]=

"女" s=

(s,m)

data, err := json.

marshal

(s)if err !=

nil fmt.

printf

("%s\n"

, data)

}func

main()

package main

import

("errors"

"fmt"

)var errnotfound error

= errors.

new(

"not found error"

)func

main()

自定義錯誤

type

error

inte***ce

自定義錯誤例子:

package main

import

("fmt"

)type patherror struct

func

(e *patherror)

error()

string

func

test()

error

}func

main()

switch err := err.

(type

)

panic&recover類似其他語言的try&catch機制

package main

import

("fmt"

)func

badcall()

func

test()

}()badcall()

fmt.

printf

("after bad call\r\n"

)// 沒有機會執行這一句

}func

main()

/* result:

calling test

panicking bad call

test completed

*/

Go語言從入門到精通 字元型別

字串中的每乙個元素叫做 字元 在遍歷或者單個獲取字串元素時可以獲得字元。go 語言的字元有以下兩種 使用 fmt.printf 中的 t動詞可以輸出變數的實際型別,使用這個方法可以檢視 byte 和 rune 的本來型別,如下 var a byte a fmt.printf d t n a,a va...

Go語言從入門到精通 匿名變數

在使用多重賦值時,如果不需要在左值中接收變數,可以使用匿名變數 anonymous variable 匿名變數的表現是乙個下畫線 使用匿名變數時,只需要在變數宣告的地方使用下畫線替換即可。例如 func getdata int,int a,getdata b getdata fmt.println ...

Go語言從入門到精通 資料型別

在 go 程式語言中,資料型別用於宣告函式和變數。資料型別的出現是為了把資料分成所需記憶體大小不同的資料,程式設計的時候需要用大資料的時候才需要申請大記憶體,就可以充分利用記憶體。go 語言按類別有以下幾種資料型別 序號型別和描述 1布林型 布林型的值只可以是常量 true 或者 false。乙個簡...