在golang中,您可以将类型定义为数据结构
type MyMap map[int]int
mapper := make(MyMap)
继续像go中的常规地图一样使用它
mapper[13] = 133
但是我不明白何时使用它或在什么情况下这会有用?
答案 0 :(得分:2)
这不是类型别名(在编辑问题之前,OP最初提出的问题) 这是type definition或“已定义类型”。
类型定义创建一个新的,不同的类型,它具有与给定类型相同的基础类型和操作,并将标识符绑定到它。
TypeDef = identifier Type .
这允许您在该类型上附加您无法使用原始类型的方法。
输入别名是Go 1.9 changes的一部分 它是proposed here并记录在Code refactoring。
Go应该添加为类型创建备用等效名称的功能,以便在代码库重构期间启用渐进式代码修复。
答案 1 :(得分:1)
当您想要重新声明将成为map[int]int
的不同参数时,它会很有用。就在提供帖子请求时,他们使用url.Values{},这实际上是一个map [string] [] string。
package main
import (
"fmt"
"net/url"
)
func main() {
v := url.Values{}
v.Set("name", "Ava")
v.Add("friend", "Jess")
v.Add("friend", "Sarah")
v.Add("friend", "Zoe")
// v.Encode() == "name=Ava&friend=Jess&friend=Sarah&friend=Zoe"
fmt.Println(v.Get("name"))
fmt.Println(v.Get("friend"))
fmt.Println(v["friend"])
}