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

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<Map<String,String>>结构
	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
	}
}

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

时间: 2024-10-05 19:34:00

go语言学习四 - 复合类型字面量声明的相关文章

Go语言学习(四)常用类型介绍

1.布尔类型 var v1 bool v1 = true; v2 := (1==2) // v2也会被推导为bool类型 2.整型 类 型 长度(字节) 值 范 围 int8 1 ? 128 ~ 127 uint8(即byte)1 0 ~ 255 int16 2 ? 32 768 ~ 32 767 uint16 2 0 ~ 65 535 int32 4 ? 2 147 483 648 ~ 2 147 483 647 uint32 4 0 ~ 4 294 967 295 int64 8 ? 9 2

【C语言学习】存储类型

C语言中的存储类型主要有四种:auto.static.extern.register ★auto存储类型 默认的存储类型.在C语言中,如果忽略了变量的存储类型,那么编译器就会自动默认为auto型 ★register存储类型 寄存器变量.寄存器位于CPU,它的特点是:容量小.速度快.它一般用来暂存程序中使用频繁的变量.或者一些中间变量等,能提高程序的执行速度.此类别的变量会优先分配寄存器. ★static存储类型 static定义的变量都是静态变量,用于限制作用域,无论是全局变量还是局部变量都存储

c++学习笔记--复合类型,const。

复习c++,有必要对一些东西做一下笔记,方便以后学习,如有问题,欢迎提出. 首先,最常用两种复合类型应该是引用和指针. 所谓复合类型,是在基本类型基础(如:int)上定义的类型. 引用是c++的一个复合类型,首先,它和指针不同的是它并不是一个对象,仅仅只是另一个对象的别名.而且,引用绑定的东西必须是一个对象,引用不是,所以定义引用的引用是 不合法的.也不能定义字面量的引用.同时,普通引用的绑定对象与引用定义类型必须相同. 如: int &a=10;//错误的,必能定义字面量 double b =

Go语言中初始化变量中字面量&amp;Type{}、new、make的区别

Go语言中new和make是内建的两个函数,主要用来创建分配类型内存.在我们定义生成变量的时候,可能会觉得有点迷惑,其实他们的规则很简单,下面我们就通过一些示例说明他们的区别和使用. 变量的声明 var i int var s string 变量的声明我们可以通过var关键字,然后就可以在程序中使用.当我们不指定变量的默认值时,这些变量的默认值是他们的零值,比如int类型的零值是0,string类型的零值是"",引用类型的零值是nil. 对于例子中的两种类型的声明,我们可以直接使用,对

c语言基础学习09_复合类型

=============================================================================涉及到的知识点有:一.结构体1.定义结构体struct和初始化.2.访问结构体中的成员.3.结构体的内存对齐模式.4.结构体中元素的位字段.5.结构体中的数组.6.结构体的嵌套.7.结构体的赋值.8.通过指针访问结构体成员(即指向结构体的指针).9.通过指针访问结构体数组(即指向结构体数组的指针).10.结构体变量的指针成员与浅拷贝.深拷贝的操

Go语言学习(四)经常使用类型介绍

1.布尔类型 var v1 bool v1 = true; v2 := (1==2) // v2也会被推导为bool类型 2.整型 类 型 长度(字节) 值 范 围 int8 1 ? 128 ~ 127 uint8(即byte)1 0 ~ 255 int16 2 ? 32 768 ~ 32 767 uint16 2 0 ~ 65 535 int32 4 ? 2 147 483 648 ~ 2 147 483 647 uint32 4 0 ~ 4 294 967 295 int64 8 ? 9 2

GO语言编程基础-复合类型结构体

大家好,我们是链客区块链技术问答社区,今天讲一讲Go语言的基础编程. 链客,有问必答!!! 1 结构体类型 有时我们需要将不同类型的数据组合成一个有机的整体,如:一个学生有学号/姓名/性别/年龄/地址等属性.显然单独定义以上变量比较繁琐,数据不便于管理. 结构体是一种聚合的数据类型,它是由一系列具有相同类型或不同类型的数据构成的数据集合.每个数据称为结构体的成员. 2 结构体初始化 2.1 普通变量 type Student struct { id   int name string sex  

SQL语言的四种类型

SQL语言共分为四大类:数据查询语言DQL,数据操纵语言DML,数据定义语言DDL,数据控制语言DCL. 1. 数据查询语言DQL 数据查询语言DQL基本结构是由SELECT子句,FROM子句,WHERE子句组成的查询块:SELECT <字段名表>FROM <表或视图名>WHERE <查询条件> 2 .数据操纵语言DML 数据操纵语言DML主要有三种形式:1) 插入:INSERT2) 更新:UPDATE3) 删除:DELETE 3. 数据定义语言DDL 数据定义语言DD

OC语言学习 (四) SEL对象,用于日志输出的宏

SEL 对象即一个selector对象,保存一个方法的地址. Person.h #ifndef oc_Person_h #define oc_Person_h @interface Person : NSObject { int age; @protected float height; } @property int age; //编译器自动解释成 int age的get/set方法 - (void) say; - (void) testSEL; @end #endif Person.m #i