day2 go 基础语法

44 阅读1分钟

go 基础语法

Map

构造:

ages := make(map[string]int) // key is string, value is int

用map字面值的语法创建map,同时还可以指定一些最初的key/value:

ages := map[string]int {
    "alice": 31,
    "Jorge": 32,
}

使用内置的delete函数可以删除元素:

delete(ages, "alice")

map中的元素并不是一个变量,因此我们不能对map的元素进行取址操作

&ages["alice] // wrong

Go语言中并没有提供一个set类型,可以用map实现类似set的功能

JSON

type Movie struct {
    Name string
    Year int 'json: "released"'
}

var movies = []Movie {
    {Title: "A", Year: 1999},
    {Title: "B", Year: 2000},
}

将一个Go语言中类似movies的结构体slice转为JSON的过程叫编组(marshaling)。编组通过调用json.Marshal函数完成:

data, err := json.MarshalIndent(movies, "", "    ")
if err != nil {
    log.Fatalf("JSON Marshal failed: %s", err)
}
fmt.Printf("%s\n", data)

输出:

[    {        "Name": "A",        "released": 1999    },    {        "Name": "B",        "released": 2000    }]