数组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的更多相关文章

  1. golang之array

    golang使用array表示固定大小的数组,使用slice表示动态数组. package main import "fmt" func main() { var a = [5]i ...

  2. Java ArrayList和Vector、LinkedList与ArrayList、数组(Array)和列表集合(ArrayList)的区别

    ArrayList和Vector的区别ArrayList与Vector主要从二方面来说.  一.同步性:   Vector是线程安全的,也就是说是同步的,而ArrayList是线程序不安全的,不是同步 ...

  3. go 数组(array)、切片(slice)、map、结构体(struct)

    一 数组(array) go语言中的数组是固定长度的.使用前必须指定数组长度. go语言中数组是值类型.如果将数组赋值给另一个数组或者方法中参数使用都是复制一份,方法中使用可以使用指针传递地址. 声明 ...

  4. javascript类型系统——数组array

    × 目录 [1]创建 [2]本质 [3]稀疏[4]长度[5]遍历[6]类数组 前面的话 除了对象之外,数组Array类型可能是javascript中最常用的类型了.而且,javascript中的数组与 ...

  5. swift基本用法-数组array

    数组简单用法 //------------------------------------------------------------------------------ // 1. 数组定义 / ...

  6. C#中数组Array、ArrayList、泛型List<T>的比较

    在C#中数组Array,ArrayList,泛型List都能够存储一组对象,但是在开发中根本不知道用哪个性能最高,下面我们慢慢分析分析. 一.数组Array 数组是一个存储相同类型元素的固定大小的顺序 ...

  7. Javascript基础系列之(四)数据类型 (数组 array)

    字符串,数值,布尔值都属于离散值(scalar),如果某个变量是离散的,那么任何时候它只有一个值. 如果想使用变量存储一组值,就需要使用数组(array). 数组是由多个名称相同的树值构成的集合,集合 ...

  8. AS3 - 数组Array的几个常用方法(附样例)

    AS3 - 数组Array的几个常用方法(附样例) 2015-03-30 10:39发布:hangge浏览:241   Flex/Flash开发中,经常会使用到数组,下面总结了一些数组的常用方法. 1 ...

  9. Linux数组array基础

    Linux数组array基础[${a[*]}和$a的区别] Bash中,数组变量的赋值有两种方法: (1) name = (value1 ... valuen) 此时下标从0开始 (2) name[i ...

随机推荐

  1. POJ2112 Optimal Milking

    Optimal Milking Time Limit: 2000MS   Memory Limit: 30000K Total Submissions: 17811   Accepted: 6368 ...

  2. QT中的线程与事件循环理解(2)

    1. Qt多线程与Qobject的关系 每一个 Qt 应用程序至少有一个事件循环,就是调用了QCoreApplication::exec()的那个事件循环.不过,QThread也可以开启事件循环.只不 ...

  3. js-数组面试题

      <!DOCTYPE html>   <html>   <head>   <meta charset="utf-8" />   & ...

  4. cocoaPods 最新系统上的安装和基本使用图文笔记

    1>mac系统自带ruby环境,查看ruby版本信息:ruby -v 2>安装cocoapods:sudo gem install cocoapods 此方法在新版本系统上会报错,如图. ...

  5. Nginx 实现端口转发

    https://www.cnblogs.com/zhaoyingjie/p/7248678.html Nginx 实现端口转发 什么是端口转发 当我们在服务器上搭建一个图书以及一个电影的应用,其中图书 ...

  6. ClientDataSet 心得

    1.   与TTable.TQuery一样,TClientDataSet也是从TDataSet继承下来的,它通常用于多层体系结构的客户端.很多数据库应用程序都用了BDE,BDE往往给发布带来很大的不便 ...

  7. 有关VS报错Files的值XXX

    从网上下载了一个实例来学习,但是运行的时候报错:Files的值(后面跟一堆符号,看不懂), 环境:安装了易赛通加密软件(估计可能跟这个加密软件有关系了) 解决方案:找到程序根目录的obj/Debug/ ...

  8. 停止一个java的线程执行

    找了一个停止线程运行的方法,代码如下: public class stopThread extends Thread { private volatile boolean stop = false; ...

  9. Palindrome II

    Problem Statement Given a string s, partition s such that every substring of the partition is a pali ...

  10. Git安装学习记录

    1.下载: https://gitforwindows.org/ 2.安装:https://blog.csdn.net/chengyuqiang/article/details/54178683 3. ...