Golang数组Array
数组Array
- 定义数组的格式:var [n], n>0
package main
import (
"fmt"
)
func main() {
//数组的长度也是类型的一部分,因此具有不同长度的数组为不同类型
var a [2]int //定义长度为2的int型数组。
var b [1]int //长度为1的int型数组
b = a
fmt.Println(b)//此时编译时不通过的
}
- 数组的长度也是类型的一部分,因此具有不同长度的数组为不同类型
package main
import (
"fmt"
)
func main() {
a := [20]int{19: 1} //长度为20的int型数组,索引位为19的赋值为1
b := [...]int{0: 1, 1: 2, 2: 3} //3个点代表不定长的数组,它会自己去推算数组的长度
fmt.Println(a)
fmt.Println(b)
}
- 注意区分指向数组的指针和指针数组
package main
import (
"fmt"
)
func main() {
x, y := 1, 2
c := [...]*int{&x, &y} //保存的元素是指向int型的指针
a := [...]int{99: 1}
var p *[100]int = &a //指向数组的指针,取的是a的地址
//加*代表这是一个指针
fmt.Println(p) //打印的结果和a的结果是一样的,只不过前面多了一个取地址的符号 &,这就是指向数组的指针
fmt.Println(c) //指针数组,存的是x和y的内存地址
}
- 数组在Go中为值类型
- 数组之间可以使用 == 或 != 进行比较,但不可以使用<或>
package main
import (
"fmt"
)
func main() {
a := [2]int{1, 2}
b := [1]int{1}
fmt.Println(a != b) //mismatched types [2]int and [1]int
//a和b的长度也必须相同才能进行比较,长度不同代表类型不同,数组的比较也是比较严格的
}
- 可以使用new来创建数组,此方法返回一个指向数组的指针
package main
import (
"fmt"
)
func main() {
p := new([10]int) //使用new关键字来创建这个数组的话,它返回的就是这个数组的指针
fmt.Println(p)
}
//结果
PS G:\mygo\src\mytest> go run .\myfirst.go
&[0 0 0 0 0 0 0 0 0 0]
package main
import (
"fmt"
)
func main() {
a := [10]int{}
a[1] = 2
fmt.Println(a)
p := new([10]int)
p[1] = 2
fmt.Println(p)
}
- Go支持多维数组
package main
import (
"fmt"
)
func main() {
a := [...][2]int{
{0: 1},
{1: 2},
}
fmt.Println(a)
}
- Go语言的冒泡排序
package main
import (
"fmt"
)
func main() {
a := [...]int{5, 2, 3, 6, 7, 8, 9}
fmt.Println(a)
num := len(a)
for i := 0; i < num; i++ {
for j := i + 1; j < num; j++ {
if a[i] < a[j] {
temp := a[i]
a[i] = a[j]
a[j] = temp
}
}
}
fmt.Println(a)
}
Golang数组Array的更多相关文章
- golang之array
golang使用array表示固定大小的数组,使用slice表示动态数组. package main import "fmt" func main() { var a = [5]i ...
- Java ArrayList和Vector、LinkedList与ArrayList、数组(Array)和列表集合(ArrayList)的区别
ArrayList和Vector的区别ArrayList与Vector主要从二方面来说. 一.同步性: Vector是线程安全的,也就是说是同步的,而ArrayList是线程序不安全的,不是同步 ...
- go 数组(array)、切片(slice)、map、结构体(struct)
一 数组(array) go语言中的数组是固定长度的.使用前必须指定数组长度. go语言中数组是值类型.如果将数组赋值给另一个数组或者方法中参数使用都是复制一份,方法中使用可以使用指针传递地址. 声明 ...
- javascript类型系统——数组array
× 目录 [1]创建 [2]本质 [3]稀疏[4]长度[5]遍历[6]类数组 前面的话 除了对象之外,数组Array类型可能是javascript中最常用的类型了.而且,javascript中的数组与 ...
- swift基本用法-数组array
数组简单用法 //------------------------------------------------------------------------------ // 1. 数组定义 / ...
- C#中数组Array、ArrayList、泛型List<T>的比较
在C#中数组Array,ArrayList,泛型List都能够存储一组对象,但是在开发中根本不知道用哪个性能最高,下面我们慢慢分析分析. 一.数组Array 数组是一个存储相同类型元素的固定大小的顺序 ...
- Javascript基础系列之(四)数据类型 (数组 array)
字符串,数值,布尔值都属于离散值(scalar),如果某个变量是离散的,那么任何时候它只有一个值. 如果想使用变量存储一组值,就需要使用数组(array). 数组是由多个名称相同的树值构成的集合,集合 ...
- AS3 - 数组Array的几个常用方法(附样例)
AS3 - 数组Array的几个常用方法(附样例) 2015-03-30 10:39发布:hangge浏览:241 Flex/Flash开发中,经常会使用到数组,下面总结了一些数组的常用方法. 1 ...
- Linux数组array基础
Linux数组array基础[${a[*]}和$a的区别] Bash中,数组变量的赋值有两种方法: (1) name = (value1 ... valuen) 此时下标从0开始 (2) name[i ...
随机推荐
- 一.认识python.变量.数据类型.条件if
01.万恶之源-python基础 ⼀.python介绍 python的创始⼈为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决⼼ ...
- PCA原理分析
动机 在机器学习领域中,我们常常会遇到维数很高的数据,有些数据的特征维度高达上百万维,很显然这样的数据是无法直接计算的,而且维度这么高,其中包含的信息一定有冗余,这时就需要进行降维,总的来说,我们降维 ...
- hive 函数 current_date()
current_date() 获取当天时间 select current_date() 结果是 实际操作中,这种写法只能获取日期是今天的数据,不适合数据重跑. 更合适的写法是 ,将日期作为外部参数传 ...
- Oracle PLSQL读取(解析)Excel文档
http://www.itpub.net/thread-1921612-1-1.html !!!https://code.google.com/p/plsql-utils/ Introduction介 ...
- 安卓读写INI文件 安卓读写INI文件
安卓读写INI文件 安卓读写INI文件 uses System.IoUtils procedure TForm1.Button1Click(Sender: TObject);varIniFile: ...
- Android-Version Compatibility Issues (Gradle 2.14.1 requires Android Gradle plugin 2.1.3 (or newer)) but project is using
当AndroidStudio加载工程Project的时候,出现以上错误❌,千万不要点击,否则就是更多其他的错误: 解决方案: 1.认真翻译错误: 2.分析问题发生的原因,然后看到了 ..... ...
- ASP.Net MVC OA项目笔记<五>
1.1.1 抽象工厂封装数据操作类实例创建,然后DBSession调用抽象工厂,修改DBSession CZBK.ItcastOA.DALFactory数据会话层调数据层不能直接new,要封装一下解 ...
- ovs QOS
实验拓扑 拓扑实现脚本 ip netns add ns1 ip netns add ns2 ip netns add ns3 ip netns add ns4 ovs-vsctl add-br br0 ...
- 【BZOJ3551】 [ONTAK2010]Peaks加强版
BZOJ3551 [ONTAK2010]Peaks加强版 Solution Kruscal重构树后发现可以对于小于的离散化然后倍增+主席树找到上一个的可行解. 然后就可以了. 如果数组开的不好,容易在 ...
- urllib2 的使用与介绍
爬虫简介 什么是爬虫? 爬虫:就是抓取网页数据的程序. HTTP和HTTPS HTTP协议(HyperText Transfer Protocol,超文本传输协议):是一种发布和接收 HTML页面的 ...