zoukankan      html  css  js  c++  java
  • Golang 基础 03 -- 数组 array

    目录

    @

    注意事项

    • 数组在Go中是值类型,不是引用
    • 类型和长度都相同的数组之间可以使用==或者!=进行比较(Go中已经实现了),但是没有<或者>
    • Go支持多维数组

    数组定义

    Tips

    • 两个数组不能直接赋值
    • 数组定义格式:var <Varname> [n]<type>, n>=0
    • 数组长度也是类型的一部分,因此不同长度数组为不同的类型
    • 可以用索引初始化下标为n的位置的值

    Examples

    func main(){
    	var a [20]int
    	a = [20]int{19:1} //索引
    	b := [3]string{}
    	c := [...]int{0:1, 1:2, 2:3}
    	fmt.Println(a,b,c)
    }
    

    指向数组的指针和指针数组

    Examples

    func main(){
    	var a [20]int
    	a = [20]int{19:1}
    	var p *[20]int = &a
    	fmt.Println(*p)
    }
    
    func main(){
    	x,y := 1,2
    	var pp [20]*int = [20]*int{&x, &y}
    	fmt.Println(pp)
    }
    

    Tips

    • 可以用new创建数组,此方法返回一个指向数组的指针
    • 不管是数组本身还是指向数组的指针,都可以用中括号的方式改变数组的值
    func main(){
    	a := [10]int{}
    	a[1]=3
    	fmt.Println(a)
    	p := new([10]int)
    	p[1]=3
    	fmt.Println(p)
    }
    /*
    command-line-arguments
    [0 3 0 0 0 0 0 0 0 0]
    &[0 3 0 0 0 0 0 0 0 0]
    */
    

    多维数组

    • 多维数组也可以使用索引
    • 二维数组的第一个参数用[...]可以省略,但是第二个不可以
    func main(){
    	a := [2][3]int{
    		{1,2,3},
    		{4,5,6}}
    	fmt.Println(a)
    }
    /*
    > Output:
    [[1 2 3] [4 5 6]]
    */
    

    下面的代码会报错:

    func main(){
    	a := [2][3]int{
    		{1,2,3},
    		{4,5,6}
    	}
    	fmt.Println(a)
    }
    //注意数组右大括号的位置
    

    冒泡排序例子

    func main(){
    	a := [...]int{1,3,4,6,8,2,10,45,34,9,8}
    	fmt.Println(a)
    	fmt.Println("从小到大排序")
    	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)
    }
    /*
    > Output:
    command-line-arguments
    [1 3 4 6 8 2 10 45 34 9 8]
    从小到大排序
    [1 2 3 4 6 8 8 9 10 34 45]
    */
    
  • 相关阅读:
    借了个屏幕来用
    生命开始的地方
    看了STLPort的安装方法,晕了
    程序员必备的10大健康装备!
    《代码整洁之道》读书笔记
    Mockito使用
    学习Emacs的理由
    shell 脚本编程的10 个最佳实践
    MongoDB入门
    用Orgmode实践《奇特的一生》
  • 原文地址:https://www.cnblogs.com/leafs99/p/golang_basic_03.html
Copyright © 2011-2022 走看看