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 ...
随机推荐
- OC语言-runtime
参考博客 IOS高级开发-Runtime(一) http://blog.csdn.net/lizhongfu2013/article/details/9496705 apple官方参考 Object- ...
- hdu 3191 次短路的长度和个数
http://acm.hdu.edu.cn/showproblem.php?pid=3191 求次短路的长度和个数 相关分析在这里http://blog.csdn.net/u012774187/art ...
- java中JDK环境变量的配置
JDK的配置在 window中的配置,我的电脑-->属性-->高级系统设置-->高级-->环境变量中配置,具体下图
- CSS 基础 例子 背景色 & 背景图片
背景简写形式 : body {background:#ffffff url('img_tree.png') no-repeat right top;} 一.背景色 background-color ...
- Excel表格公式大全[转]
Excel技巧网_官方微博 作者: Excel技巧网_官方微博 2016-09-23 14:05:20 举报 阅读数:21219 1.查找重复内容公式:=IF(COUNTIF(A:A,A2)> ...
- Scott-Knott test 配置与使用
安装最新版本的 R R安装镜像 Download R 3.3.0 for Windows (62 megabytes, 32/64 bit) 理由 Scott-Knott 包由 R 3.2.5 编译的 ...
- FFmpeg简易播放器的实现-视频播放
本文为作者原创:https://www.cnblogs.com/leisure_chn/p/10047035.html,转载请注明出处 基于FFmpeg和SDL实现的简易视频播放器,主要分为读取视频文 ...
- git关联githup和码云
1.与已有的本地仓库关联git remote add origin git@github.com:michaelliao/learngit.git然后就可以协作开发push与pull 2.第二种方法直 ...
- MYSQL基础语法的使用
喜欢的朋友可以关注下,粉丝也缺. MYSQL介绍 MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品.MySQL 是最流行的关系型数据库管理系统之 ...
- 初印象至Vue路由
初印象系列为快速了解一门技术的内容,后续会推出本人应用这门技术时发现的一些认识. Vue路由和传统路由的区别: Vue路由主要是用来实现单页面应用内各个组件之间的切换,同样支持传递参数等功能.而传统路 ...