美文网首页
Go中复合数据类型的字面量语法抽象

Go中复合数据类型的字面量语法抽象

作者: 科研者 | 来源:发表于2019-02-26 23:49 被阅读0次

Go语言中有多种复合数据,如:数组、切片、map、结构体 等等,它们也都有字面量写法,而且也很接近,初学者容易弄混淆,为了方便理解和记忆,我把这些类型的字面量写法抽象为了一个语法,即:类型{成员列表},也就是说这些类型的字面量写法看似有区别,实则都一样;

目录

  • 一、类型语法
  • 二、字面量语法

内容

一、类型语法

数组

语法:

[数组的长度]元素类型

示例:

[3]string

切片slice

语法:

[]元素类型

示例:

[]string

map

语法:

map[key的类型]value的类型

示例:

map[string]int{}

结构体struct

语法:

struct {
    成员名1 成员类型1
    成员名2 成员类型2
    成员名3 成员类型3
}

示例:

struct{ Name string, Age  int }

二、字面量语法

类型{成员列表}

字面量语法示例

数组字面量语法:

//定义个类型别名,通过类型别名来创建字面量实例
type GBY [3]string
a := GBY{"郭","斌","勇"}

//创建长度为3的数组,并用一组元素来初始化
a := [3]string{"郭","斌","勇"}

//创建长度为4的数组,并用一组元素("郭","斌","勇")来初始化,末指定初始值的元素默认为元素类型的零值
b := [4]string{"郭","斌","勇"}

//数组的长度自动设置为初始化元素的个数
c := [...]string{"郭","斌","勇"}


//创建长度为5的数组,并指定索引2、5、3的元素值,索引的顺序可任意放置,索引也可以用常量表示,末指定初始值的元素认为元素类型的零值
const index5  = 5
d := [6]string{2:"郭",index5:"斌",3:"勇"}

//数组的长度会自动根据最大的索引来计算
e := [...]string{4:"郭"}


//定义个类型别名,通过类型别名来创建字面量实例
type GBY [3]string
g := GBY{"郭","斌","勇"}

切片slice字面量语法:

//创建切片,并用一组元素来初始化
a := []string{"郭","斌","勇"}

//创建切片,切片的长度会自动根据最大的索引来计算,并指定索引2、5、3的元素值,索引的顺序可任意放置,索引也可以用常量表示,末指定初始值的元素认为元素类型的零值
const index5  = 5
b := []string{2:"郭",index5:"斌",3:"勇"}


//定义个类型别名,通过类型别名来创建字面量实例
type GBY []string
g := GBY{"郭","斌","勇"}

map字面量语法:

//创建一个空的map实例
a := map[string]int{}

//创建一个map实例,并且指定初始的key和value
b := map[string]int{"郭斌勇":28,"闯":18}


//定义个类型别名,通过类型别名来创建字面量实例
type GBY map[string]int
g := GBY{"郭斌勇":28,"闯":18}

结构体struct字面量语法:
以结构体成员定义的顺序为
每个结构体成员指定一个面值。

type Point struct{ X, Y int }
p := Point{1, 2}

以成员名字和相应的值来初始化,可以包含部分或全部的成员,如果成员被忽略的话将默认用零值。因为,提供了成员的名字,所有成员出现的顺序并不重要。

type Point struct{ X  int, Y int }
p := Point{Y:2,X:1}

//直接定义类型和实例

g := struct{ X, Y int }{"郭斌勇":28,"闯":18}

相关文章

  • Go中复合数据类型的字面量语法抽象

    Go语言中有多种复合数据,如:数组、切片、map、结构体 等等,它们也都有字面量写法,而且也很接近,初学者容易弄混...

  • JavaScript - New

    Menu 语法和类型声明变量提升函数提升数据结构和类型数据类型的转换字面量数组字面量(Array literals...

  • JS简介

    HelloWorld JS编写位置 JS基本语法 字面量和变量 标识符 数据类型

  • Go核心语言编程 - 复合数据类型(3)

    Go对应的复合数据类型有数组,字典,指针,切片,通道,结构和结构,他们字面类型如下: • 指针 • 数组• 数组初...

  • 前端(js)

    js基本语法 字面量和变量 标识符 数据类型 一元运算符

  • JS 语法和数据类型

    讨论 JavaScript 的基本语法,变量声明,数据类型 和 字面量。 1.基础 JavaScript 脚本的源...

  • ios中的字面量语法

    oc的语法很繁杂,在定义一些数组、字典的时候要写很长的方法。通过字面量语法可以像c语言那样定义数组等,可以缩减代码...

  • HTML-09day

    1、字面量和变量 2、数据类型 3、JS基本语法 4、标识符 5、JS简介

  • HTML 日常了解8(js篇)

    HelloWorld js编写位置 js基本语法 字面量和变量 标识符 数据类型 Number Boolean N...

  • 2018-11-28

    HelloWorld js编写位置 js基本语法 字面量和变量 标识符 数据类型 Number Boolean N...

网友评论

      本文标题:Go中复合数据类型的字面量语法抽象

      本文链接:https://www.haomeiwen.com/subject/amytuqtx.html