在golang中,您可以将类型定义为数据结构
type MyMap map[int]int
mapper := make(MyMap)
然后继续使用它像go中的常规地图
mapper[13] = 133
但是我不明白何时使用它或在什么情况下这会有用?
这不是类型别名(正如OP最初询问的那样,在编辑问题之前)。 这是一个type definition或“定义类型”。
类型定义创建一个新的,不同的类型,其具有与给定类型相同的基础类型和操作,并将标识符绑定到它。
TypeDef = identifier Type .
这允许您在该类型上附加您无法使用原始类型的方法。
类型别名是Go 1.9 changes的一部分。 这是proposed here并记录在Code refactoring。
Go应该添加为类型创建备用等效名称的功能,以便在代码库重构期间启用渐进式代码修复。
当你想要重新声明将成为map[int]int
的不同参数时,它会很有用。就在提供发布请求时,他们使用url.Values{},它实际上是一个map [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"])
}