golang基础--Array数组


基本特性

  • 格式: var Name [n]<type>,n>0 如: var a [10]int 表示,定义一个长度为10,元素类型为int性的数组
  • 数组长度: 长度(len)也是数组类型的一部分,因此具有不同长度的数组为不同的类型。 如var a [2]int != var a [2]int
  • 注意区分指向数组的指针和指针数组
    // 指向数组的指针:变量是指针
    a :=[...]int[9:1]   //顶一个变量a的数组(长度为100,第100个元素为1)
    var p *[...]int = &a //定义一个p的变量,类型为指针
    
    //指针数组:变量是数组,元素是指针(内存地址)
    x , y := 1,2
    b :=[...]*int(&x,&y)
    
    print (p)
    print (b)
    /*输出结果:
    p---> &[0 0 0 0 0 0 0 0 0 9]
    b---> [0xc04200c0a8 0xc04200c0c0]
    */ 
  • 数组在Go中属于值类型
  • 数组之间可以使用 ==!=进行比较,但不可以使用<>,比较是否相等,必须比较长度,类型,元素
    // 可以使用==和!=对两个数组进行比较
    package main
    import (
        "fmt"
    )
    func main() {
        a := [2]int{1, 2}
        b := [2]int{1, 2}
        c := [2]int{1, 3}
        fmt.Println(a == b) //判断两个数组是否相同
        fmt.Println(a == c) //判断两个数组是否相同
    }
    /*输出
    a==b ----> true
    a==c ----> false
    */
  • 可以使用new类创建数组,此仿佛返回一个指向数组的指针(内存地址)
    package main
    import (
        "fmt"
    )
    func main() {
        a := [5]int{}
        a[1] = 2 //设定数组第二个元素的值为2
        fmt.Println(a)
        p := new([5]int) //new方法创建一个数组,返回的是一个数组的指针
        fmt.Println(p)
        p[1] = 2
        fmt.Println(p) //数组的指针赋值后,可以达到同样的效果
    }
    /*输出
    a--->[0 2 0 0 0]
    p--->[0 0 0 0 0]
    p--->&[0 2 0 0 0]
    */
  • 支持多维数组:
    //多维数组:类似python中的嵌套数列
    package main
    import "fmt"
    func main() {
        a := [2][3]int{
            {1, 1, 1},
            {2, 2, 2}} //大括号必须放在数组结束的同一层
        fmt.Println(a)
    
        b := [...][3]int{ //当不知道到底是几维数组时,可以使用...,但是,元素个数不可以使用...
            {1: 2}, //一维数组,第2个元素为2
            {2: 1}} //二维数组:第三个元素为1
        fmt.Println(b)
    
        c := [...][4]int{
            {3: 3},
            {1: 0},
            {2: 2}}
        fmt.Println(c)
    }
    
    /*输出
    a--->   [[1 1 1] [2 2 2]]
    b--->   [[0 2 0] [0 0 1]]
    c--->   [[0 0 0 3] [0 0 0 0] [0 0 2 0]]
    */
  • go实现冒泡排序:
    //冒泡排序
    package main
    import "fmt"
    
    func main() {
        a := [...]int{5, 2, 3, 1, 6, 8}
        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] = a[i] //temp
                }
            }
        }
        fmt.Println(a)
    }
    
    /*输出结果
    a--->   [5 2 3 1 6 8]
    a--->   [8 6 5 3 2 1]  //从大到小排序
    */

    代码解释如下(6-14行):

    1. 定义一个一维数组,并确定每个元素的值
    2. 输出原始数组
    3. 通过len函数确定数组的长度 num
    4. for 循环,从0开始遍历数组的每一个索引,直到遍历完最后一个元素
    5. 从数组的第二个索引开始遍历,直到遍历完所有的元素
    6. 通过索引取值,比较相邻两个元素的大小,如果后一个元素的值大于前一个索引值(倒序)
    7. 将前一个元素的值赋值给变量temp(临时值)
    8. 将数组前一个元素的值与后一个元素的值互换位置
    9. 遍历完所有的元素后,最大的值是第一个元素

原文地址:https://www.cnblogs.com/failymao/p/9280754.html

时间: 2024-07-30 01:45:05

golang基础--Array数组的相关文章

golang基础之数组

文章转载请注明出处www.leexide.com 希望每一位寻求转载的朋友都能够按照要求进行,鼓励原创,尊重原创. 微信公众号:DevOps运维运营之家 QQ号码:1045884038 E-mail:[email protected] 如有问题或建议,请关注微信公众号 1 数组介绍 数组是同一类型元素的集合.例如,整数集合 5,8,9,79,76 形成一个数组.Go 语言中不允许混合不同类型的元素,例如包含字符串和整数的数组.(注:当然,如果是 interface{} 类型数组,可以包含任意类型

go语言-golang基础-数据类型数组,数组切片,映射

7.7 数组 数组是Go语言编程中最常用的数据结构之一.顾名思义,数组就是指一系列同一类型数据的集合.数组中包含的每个数据被称为数组元素(element),一个数组包含的元素个数被称为数组的长度. 以下为一些常规的数组声明方法: [32]byte // 长度为32的数组,每个元素为一个字节 [2*N] struct { x, y int32 } // 复杂类型数组 [1000]*float64 // 指针数组 [3][5]int // 二维数组 [2][2][2]float64 // 等同于[2

Java Script基础(八) Array数组对象

Java Script基础(八) Array数组对象 一.Array数组 JavaScript中的数组也是具有相同数据类型的一个或者多个值得集合.用法和Java中的数组类似. Array对象的常用属性和方法: 属性: length:获取数组的长度: 方法: join():把数组中的所有元素放入一个字符串中,通过分隔符进行分隔. sort():对数组元素进行排序. 1.创建数组 语法: var a1 = new Array();           //创建一个数组,长度为0: var a2 = 

js基础,Array 数组对象、BOM 浏览器对象模型

Array 数组对象 定义数组的 3种方式 var week = new Array(); var week = new Array(‘星期一’ , ‘星期二, ‘星期三’); var week = (‘星期一’ , ‘星期二, ‘星期三’); 常用方法: 获取数组的长度 .length: alert(week.length); 获取数组下标所对应的值: alert(week[0]); 数组元素添加: 将一个或多个新元素添加到数组结尾,并返回数组新长度 var week_len = week.p

js基础复习---数组操作

<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="keywords" content="js数组操作"> <meta name="description" content="js基础之数组api练习"> <title

[.net 面向对象编程基础] (17) 数组与集合

[.net 面向对象编程基础] (17) 数组与集合 学习了前面的C#三大特性,及接口,抽象类这些相对抽象的东西以后,是不是有点很累的感觉.具体的东西总是容易理解,因此我们在介绍前面抽象概念的时候,总是举的是具体的实例以加深理解. 本节内容相当具体,学起来也相当轻松. 1.数组 1.1 什么是数组? 数组是一种数据结构,包含同一个类型的多个元素. 1.2数组的初始化 string[] mystringArray; 类型+方框号 数组名 1.3数组初始化 我们知道数组是引用类型,所以需要给他分配堆

JavaScript基础之数组的重排序

JavaScript基础之数组的重排序 数组(Array)算是继Object之后我们最常用到的类型了.与其他语言不同的是,javascript数组的每一项可以保存任何类型的数据,并且数组的大小是可以动态调整的. JavaScript已经为我们提供了两个数组重排序的方法,reverse()和sort() 方法. 其中reverse()方法会反转数组项的顺序.举个栗子: var values = [18,4,56,1,"a","b","abc"];

golang之array

golang使用array表示固定大小的数组,使用slice表示动态数组. package main import "fmt" func main() { var a = [5]int{2,3,5,7,11} fmt.Printf("type of array: %T\n", a) fmt.Printf("address of array: %p\n", &a) fmt.Printf("address of arrar[0]:

数据类型总结——Array(数组类型)

原文 简书原文:https://www.jianshu.com/p/1e4425383a65 大纲 前言 1.Array数组类型的相关概念 2.创建数组的基本方式有两种 3.检测某个变量是否是数组的方式 4.数组的遍历:for...in语句 5.数组的常用方法 前言 数据类型是每一种语言都需要掌握的内容,掌握每一种数据类型的使用是掌握这门语言必不可少的.而我也对数据类型写了一系列的博客,其中包含了对某一数据类型的概念的认识和理解以及常使用的方法.以下就是我对Array类型的一些认识和理解,希望能