zoukankan      html  css  js  c++  java
  • go5--数组

    package main
    
    /*
    数组Array
    定义数组的格式:var <varName> [n]<type>,n>=0
    数组长度也是类型的一部分,因此具有不同长度的数组为不同类型
    注意区分指向数组的指针和指针数组
    数组在Go中为值类型
    数组之间可以使用==或!=进行比较,但不可以使用<或>
    可以使用new来创建数组,此方法返回一个指向数组的指针
    Go支持多维数组
    */
    import (
        "fmt"
    )
    
    func main() {
        var a [2]string
        var b [1]int //不赋值都是0
    
        d := [2]int{}
        e := [2]int{1, 2}
        f := [2]int{1} //后面不赋值是0
    
        g := [20]int{19: 1} //前面19个元素是0,第20个元素是1
    
        h := [...]int{1, 2, 3, 4, 5} //前面19个元素是0,第20个元素是1,数组长度自动计算是5
    
        i := [...]int{0: 1, 1: 2, 2: 3, 3: 4} //通过下标指定数组的元素,数组长度自动计算是4
    
        j := [20]int{19: 1} //数组长度自动计算是20,最后一个是1,
    
        var p *[20]int = &j //数组的指针
        fmt.Println(p)
        fmt.Println(*p)
    
        fmt.Println(j)
        fmt.Println(&j)
    
        x, y := 1, 2
        k := [...]*int{&x, &y} //指针数组
        fmt.Println(k)
    
        //在其他语言中,数组是一个引用类型,函数传参的时候传递的是一个地址,go语言中数组是值传递
        //函数传参的时候是传递的拷贝
    
        a := [2]int{1, 2}
        b := [2]int{1, 2}
        fmt.Println(a == b) //true
        c := [2]int{1, 3}
        fmt.Println(a == c) //false
        d := [1]int{}       //
        fmt.Println(a == d) //invalid operation: a == d (mismatched types [2]int and [1]int),
        //类型不同,不能进行比较,直接报错
    
        p := new([10]int) //p是一个指向数组的指针
        fmt.Println(p)    //&[0 0 0 0 0 0 0 0 0 0],
        fmt.Println(*p)   //[0 0 0 0 0 0 0 0 0 0]
    
        a := [10]int{}
        a[1] = 2
        fmt.Println(a)  //[0 2 0 0 0 0 0 0 0 0]
        fmt.Println(&a) //&[0 2 0 0 0 0 0 0 0 0]
        fmt.Println(*a) //报错
    
        p := new([10]int)
        p[1] = 3
        fmt.Println(p)  //&[0 3 0 0 0 0 0 0 0 0]
        fmt.Println(*p) //[0 3 0 0 0 0 0 0 0 0]
    
        //二位数组
        a := [5][3]int{
            {1, 2, 3},
            {4, 5, 6},
            {1: 1}}
        fmt.Println(a) //[[1 2 3] [4 5 6] [0 1 0] [0 0 0] [0 0 0]]
    
        //冒泡排序
        sort := [...]int{5, 7, 3, 2, 9, 0}
        fmt.Println(sort)
        num := len(sort)
        for i := 0; i < num; i++ {
            for j := i + 1; j < num; j++ {
                if sort[i] < sort[j] {
                    temp := sort[i]
                    sort[i] = sort[j]
                    sort[j] = temp
                }
            }
        }
        fmt.Println(sort)
    }
  • 相关阅读:
    freemarker 遍历 hashmap 到select option
    三分钟跑起jsblocks
    hibernate_@GeneratedValue
    跑github上的Symfony项目遇到的问题2
    Activiti使用过程_1
    Symfony官方视频教程
    跑github上的Symfony项目遇到的问题
    剧本杀
    随遇而安
    开发者职场心得
  • 原文地址:https://www.cnblogs.com/yaowen/p/8068040.html
Copyright © 2011-2022 走看看