声明一个数组变量的同时为该变量赋值。
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. C++消息框架-基于sigslot

    目录 一.简介 二.消息 三.发送者 1.发送消息函数 2.新增一个接收者函数 3.移除一个接收者函数 四.接收者 五.功能测试 1.消息接收类 2.测试代码 3.测试结果 六.源码 一.简介 上一篇 ...

  2. 微信小程序删除数组(删除对应指定下标数组中的元素)

    .js 使用arr.splice(id,1)删除 // 删除数组中指定下标 dele_time: function (e) { console.log('删除') console.log(e.curr ...

  3. java、python、MYSQL环境安装

    JAVA的环境变量:变量值:%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;        变量名:JAVA_HOME python的环境变量:变量值:    %PY_HOME ...

  4. Tomcat 报错 The APR based Apache Tomcat Native library which allows optimal performance in production environmen

    这个问题在我一次重新装了tomcat和myeclipse时出现 说实话 出现这个问题头大 但是好在解决了 美滋滋 最开始到处寻找各种解决方案 最后直接注释了server.xml中的一行 直接解决这个报 ...

  5. Android Studio [RecyclerView/瀑布流显示]

    PuRecyclerViewActivity.java package com.xdw.a122.recyclerview; import android.support.v7.app.AppComp ...

  6. maven手动添加jar包到pom仓库

    此处以顺丰jar包为例: mvn install:install-file -Dfile=D:\TSBrowserDownloads\SF-CSIM-EXPRESS-SDK-V1.-\SF-CSIM- ...

  7. springboot 打包插件去除jar包瘦身

    1.pom文件配置 <plugin> <groupId>org.springframework.boot</groupId> <artifactId>s ...

  8. Java Map知识点

    1.遍历 java遍历Map的方式有多种,一下以代码示例来说明使用: Map<String, String> tmap = new HashMap<String, String> ...

  9. Linux 查看端口状态netstat

    netstat命令参数: -t : 指明显示TCP端口 -u : 指明显示UDP端口 -l : 仅显示监听套接字(所谓套接字就是使应用程序能够读写与收发通讯协议(protocol)与资料的程序) -p ...

  10. win10下,打开oracle时出现 oracle initialization or shutdown in process 错误 的解决办法

    解决方法: 1)在dos窗口下输入:sqlplus /nolog 2)SQL>connect sys/sys as sysdba 提示:已连接. 3)SQL>shutdown normal ...