Go语言小记
风吹过的 路依然远 你的故事讲到了哪
最近一个月写了大概一万行左右Go代码,写一点入门笔记。
Go中的JSON
定义
type person struct {
Name string `json:"name"`
Age int64 `json:"age"`
Weights []weight `json:"weights"`
}
type weight struct {
Time string `json:"time"`
Value float64 `json:"weight"`
}
使用
person := person{
Name: "狗蛋",
Age: 12,
Weights: make([]weight, 0),
}
person.Weights = append(person.Weights, weight{Time: "2020-10-10", Value: 55.55})
Go中的接口
func toString(v interface{}) string {
switch v.(type) {
case int:
return strconv.Itoa(v.(int))
case float64:
return strconv.FormatFloat(v.(float64), 'f', -1, 64)
case bool:
if v.(bool) {
return "是"
}
return "否"
default:
return "Unknown type"
}
}
这是一个很简单的例子,通过判断interface{}中的类型,返回对应的可打印字符串。(虽然直接用)fmt.println()或者fmt.prinit("%v")能直接打印
顺序遍历Go语言的Map
Go语言中的map内部基于哈希表,遍历时会乱序。
keys := make([]int, 0)
for k, _ := range romanNumeralDict {
keys = append(keys, k)
}
sort.Ints(keys)
for _, k := range keys {
fmt.Println(k, romanNumeralDict[k])
}
通过上面这段代码就可以顺序遍历一个map啦~