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。乙個簡...