test

command
v0.0.0-...-c576ecb Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 15, 2017 License: MIT Imports: 8 Imported by: 0

README

数组

数组定义后长度固定

长度获取: len() 函数

所有的值类型变量在赋值,和作为参数传递时都将产生一次复制动作。

go数组是一个值类型,在函数体中无法修改传入的数组的内容,因为函数内操作的只是所 传入数组的一个副本

创建

声明一个数组, 并且设置为零值

var array [5]int
使用数组字面量声明数组
// 声明一个包含5个元素的整形数组
// 用具体值初始化每个元素
array := [5]int{10, 20, 30, 40, 50}
自动计算长度的数组
// 声明一个整形数组
// 用具体值初始化每个元素
// 容量由初始化值得数量决定
array := [...]int{10, 20, 30, 40, 50}
声明数组并指定特定元素的值
// 声明一个包含5个元素的整形数组
// 用具体值初始化索引为1和2的元素
// 其余元素保持零值
array := [5]int{1:10, 2:20}

使用

访问数组元素
array := [5]int{10, 20, 30, 40, 50}

//修改索引为2的元素的值
array[2] = 25
访问指针数组的元素
// 声明包含5个元素的只想整形的数组
// 用整形指针初始化索引为1和2的数组元素
// 未赋值的 0, 3, 4 为 nil
array := [5]*int{1: new(int), 2: new(int)}

//为索引2的元素赋值
*array[2] = 25
把同样类型的一个数组赋值给另外一个数组
// 声明一个包含5个元素的字符串数组
var array1 [5]int

// 声明第二个包含5个元素的字符串数组
array2 := [5]int{10, 20, 30, 40, 50}

// 将array2复制给array1
array1 = array2

复制以后两个数组完全一样,使用的不是同一块内存。

数组变量的类型包括数组长度和每个元素的类型。只有这两部分相同的数组,才是类型相同的数组,才能互相赋值。

例如: [5]int 和[10]int 不是一个类型。

编译器会阻止类型不同的数组相互赋值

只要声明和赋值的数组类型和长度不一样就会报错。

// 声明一个包含4个元素的字符串数组
var array1 [4]int

// 声明第二个包含5个元素的字符串数组
array2 := [5]int{10, 20, 30, 40, 50}

// 将array2复制给array1
array1 = array2

// cannot use array2 (type [5]int) as type [4]int in assignment
把一个指针数组赋值给另一个
// 声明一个包含3个元素的指向字符串的指针宿主
var array1 [3]*string

// 声明第二个包含3个元素的指向字符串的指针数组
array2 := [3]*string{new(string), new(string), new(string)}

//赋值
*array2[1] = "Red"

//将array2 赋值给 array1
array1 = array2

复制以后,两个数组指向同一组字符串。

Documentation

Overview

How to set timeout for http.Get() in golang

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL