go语言学习四 - 复合类型字面量声明

2021-07-12 13:08

阅读:657

标签:str   import   sha   fun   字节   hal   逗号   mars   多行   

package main

import (
	"encoding/json"
	"fmt"
)

func main() {

	//go语言的复合大括号文面量声明非常强大和灵活
	//只要在最外层声明完整的复合类型在大括号内部就不需要再声明类型而直接用大括号了
	a := [][]int{
		{1, 2, 3, 4}, //这里不必再用 []int{1,2,3,4} 声明,如果用的话编译器提示冗余的类型声明(Redundant type declaration)
		{5, 6, 7, 8},} //多行的复合类型声明最后一行大括号换行前需要加一个逗号,或者最后一个大括号不换行也行


	//很方便的声明一个比较常用的类似java的List>结构
	var list = []map[string]string{
		{"name": "wengmj", "id": "1"},
		{"name": "chengp", "id": "2"}, //这里结尾必须加一个 "奇怪的逗号",如果想不加这个逗号最后一个大括号不换行即可
	}

	fmt.Println(a)

	//将这个常用的结构转换为 json
	if data, err := json.Marshal(list); err == nil {
		fmt.Printf("%s\n", data)
		 // json.Marshal(v interface{}} (byte[],error)
		 // 所以直接打印显式的是 byte[] , 还可以用 fmt.Println(string(data)) 将字节数组转换为 string
	}
}

go语言学习四 - 复合类型字面量声明

标签:str   import   sha   fun   字节   hal   逗号   mars   多行   

原文地址:https://www.cnblogs.com/scala/p/9546718.html


评论


亲,登录后才可以留言!