声明一个数组变量的同时为该变量赋值。
var numbers = []int{, , } 另一种便捷方法, 类型字面量中省略代表其长度的数字
var numbers = [...]int{, , }
对于数组来说,索引值既不能小于0也不能大于或等于数组值的长度。
索引值的最小有效值从0开始。
len是Go语言的内建函数的名称。
该函数用于获取字符串、数组、切片、字典或通道类型的值的长度。
var length = len(numbers)
如果我们只声明一个数组类型的变量而不为它赋值,那么该变量的值将会是指定长度的、其中各元素均为元素类型的零值(或称默认值)的数组值。
var numbers2 []int; 则它的值会是[]int{, , , , }

切片

var numbers3 = []int{, , , , }
var slice1 = numbers3[:]
切片表达式一般由字符串、数组或切片的值以及由方括号包裹且由英文冒号“:”分隔的两个正整数组成。
这两个正整数分别表示 [ 元素下界索引 : 元素上界索引 ]。
切片表达式numbers3[:]的求值结果为[]int{, , }。
切片的更多操作方法
numbers3[::]
这第三个正整数被称为容量上界索引。
它的意义在于可以把作为结果的切片值的容量设置得更小。
append会对切片值进行扩展并返回一个新的切片值。
slice1 = append(slice1, , )
slice1的值变为了[]int{, , , , }
切片方法--复制
该操作的实施方法是调用copy函数。该函数接受两个类型相同的切片值作为参数,
并会把第二个参数值中的元素复制到第一个参数值中的相应位置(索引值相同)上。
这种复制遵循最小复制原则,即:被复制的元素的个数总是等于长度较短的那个参数值的长度
var slice4 = []int{, , , , , , }
copy(slice4, slice1)
通过上述复制操作,slice4会变为[]int{, , , , , , }
 字典
字典类型的字面量如下:
map[K]T
其中,“K”意为键的类型,而“T”则代表元素(或称值)的类型
字典的键类型必须是可比较的,否则会引起错误。也就是说,它不能是切片、字典或函数类型。
map[int]string{1: "a", 2: "b", 3: "c"}
赋值给一个变量:
mm := map[int]string{: "a", : "b", : "c"}
 运用索引表达式取出字典中的值
b := mm[]
对于字典值来说,如果其中不存在索引表达式欲取出的键值对, 那么就以它的值类型的空值(或称默认值)作为该索引表达式的求值结果
针对字典的索引表达式可以有两个求值结果。
第二个求值结果是bool类型的。
它用于表明字典值中是否存在指定的键值对。
从字典中删除键值对,调用内建函数delete
delete(mm, )
无论mm中是否存在以4为键的键值对,delete都会“无声”地执行完毕。
有则删除,无则不做。
与切片类型相同,字典类型属于引用类型。它的零值即为nil。
func testMap() {
var a map[string]string = map[string]string{
"key": "value",
}
a["abc"] = "efg1"
a["abc"] = "efg2"
a["abc1"] = "efg" fmt.Println(a)//map[abc:efg2 abc1:efg key:value]
}
func testMap2() {
a := make(map[string]map[string]string, )
a["key1"] = make(map[string]string)
a["key1"]["key2"] = "abc2"
a["key1"]["key3"] = "abc3"
a["key1"]["key4"] = "abc4"
a["key1"]["key5"] = "abc5"
fmt.Println(a) //map[key1:map[key2:abc2 key3:abc3 key4:abc4 key5:abc5]]
c := a["key1"]["key5"]
fmt.Println(c) //abc5
delete(a, "key1")
}
func trans(a map[string]map[string]string) {
for k, v := range a {
fmt.Println(k)
for k1, v1 := range v {
fmt.Println("\t", k1, v1)
}
}
}
 
 

go-数组-切片-字典的更多相关文章

  1. Golang 数组 切片 字典 基本知识点

    数组 数组的声明 var arrayName [arraySize]dataType eg: var array1 [5]int 在声明数组时,必须指定数组名,数组长度和数组元素的类型. 数组的初始化 ...

  2. go 数组 切片 字典 结构体

    数组 ##数组的定义与赋值: 1. var num [3]int num = [3]int{1,2,3} 2. var num [3]int = [3]int {1,2,3} 3. num := [3 ...

  3. 窥探Swift之数组安全索引与数组切片

    今天是元宵节,祝大家元宵节快乐!在Swift中的数组和字典中下标是非常常见的,数组可以通过索引下标进行元素的查询,字典可以通过键下标来获取相应的值.在使用数组时,一个常见的致命错误就是数组越界.如果在 ...

  4. Go语言学习之4 递归&闭包&数组切片&map&锁

    主要内容: 1. 内置函数.递归函数.闭包2. 数组与切片3. map数据结构4. package介绍 5. 排序相关 1. 内置函数.递归函数.闭包 1)内置函数 (1). close:主要用来关闭 ...

  5. 窥探Swift之数组与字典

    说到数组和字典,只要是编过程的小伙伴并不陌生.在Swift中的数组与字典也有着一些让人眼前一亮的特性,今天的博客就来窥探一下Swift中的Array和Dictionary.还是沿袭之前的风格,在介绍S ...

  6. Objective-C中把数组中字典中的数据转换成URL

    可能上面的标题有些拗口,学过PHP的小伙伴们都知道,PHP中的数组的下标是允许我们自定义的,PHP中的数组确切的说就是键值对.而在OC我们要用字典(Dictionary)来存储,当然了Java用的是M ...

  7. golang中不定参数与数组切片的区别

    package main import "fmt" func main() { myfunc1(, , , ) //传递不定数量的参数 myfunc2([], , , }) //传 ...

  8. 使用NSJSONSerialization将数组或字典转为字符串

    IOS中将数组或字典转为字符串可以用NSJSONSerialization,代码如下: NSData* data = [NSJSONSerialization dataWithJSONObject:a ...

  9. go语言 类型:数组切片

    初看起来,数组切片就像一个指向数组的指针,实际上它拥有自己的数据结构,而不仅仅是个指针.数组切片的数据结构可以抽象为以下3个变量: 1.一个指向原生数组的指针: 2.数组切片中的元素个数: 3.数组切 ...

  10. OC中如何把数组中字典的数据转换成URL?

    在使用objective-c语言开发iOS应用中,会向服务器通过URL请求一些数据,因此对URL的拼接肯定少不了.而在iOS中,我们一般是通过将字典中的数据拼接成我们要请求的URL字符串,那这个是怎么 ...

随机推荐

  1. QCustomplot使用分享(八) 绘制图表-加载cvs文件

    目录 一.概述 二.效果图 三.源码讲解 1.源码结构 2.头文件 3.移动游标 4.设置坐标轴矩形个数 5.添加图表数据 6.设置折线图类型 6.其他函数 四.测试方式 1.测试工程 2.测试文件 ...

  2. Day 25 网络基础2

    ip地址划分 ip地址由32位二进制组成. 什么是二进制?0101 10进制 0-9 10 2进制 0-1 10 二进制1100 ==1X2^3+1X2^2+0X2^1+0X2^0 =12 十进制15 ...

  3. windows导出文件名列表

    新建txt文件,粘贴以下命令: DIR *.*  /B >LIST.TXT 将txt文件的后缀改为.bat 执行bat文件即可

  4. SpringBoot整合Nacos注册中心

    #### 什么是Nacos Nacos 是阿里巴巴的开源的项目,Nacos致力于帮助您发现.配置和管理微服务.Nacos提供了一组简单易用的特性集,帮助您快速实现动态服务发现.服务配置.服务元数据及流 ...

  5. 使用express框架创建服务器

    上一篇写创建第一个node服务器是基于原始方法写的,express框架的作用就是省掉那些原始代码,直接调用相关的方法就可以了,开发起来简单方便. 一.package.json的配置 首先要进行pack ...

  6. Linux 文件/目录操作详解

    目录 Linux 文件/目录操作详解 初识Linux 一.文件/目录显示命令 ls 二.目录创建命令 mkdir 三.目录转移命令 cd 四.当前目录显示命令 pwd 五.文件处理命令 rmdir 六 ...

  7. JQuery入门学习笔记(全)

    jQuery 语法 $(this).hide() - 隐藏当前元素 $("p").hide() - 隐藏所有 元素 $("p.test").hide() - 隐 ...

  8. python爬虫添加请求头和请求主体

    添加头部信息有两种方法 1.通过添加urllib.request.Request中的headers参数 #先把要用到的信息放到一个字典中 headers = {} headers['User-Agen ...

  9. Zookeeper 学习笔记之 Leader Election

    ZooKeeper四种节点类型: Persist Persist_Sequential Ephemeral Ephemeral_Sequential 在节点上可注册的Watch,客户端先得到通知再得到 ...

  10. JavaSE----03.数据类型

    03.数据类型 1.数据类型分类     Java是强类型语言,Java中的数据类型分为两大类,分别是基本数据类型和引用数据类型.其中,基本数据类型由Java语言定义,其数据占用内存的大小固定,在内存 ...