zoukankan      html  css  js  c++  java
  • Golang 数组

    1. 数组的定义和初始化

    数组定义语法

    var 数组名 [数组长度] 数组类型
    

    定义和初始化数组

    代码示例:

    package main
    
    import "fmt"
    
    func main() {
    	// 1. var 定义数组
    	var arr1 [5]int
    	fmt.Printf("arr1: %v
    ",arr1)
    
    	// 2. := 自动推导,定义并初始化
    	arr2 := [3]int{1,2,3}
    	fmt.Printf("arr2: %v
    ",arr2)
    
    	// 3. 省略大小
    	arr3 := [...]int{2,4,6,8,10,12}
    	fmt.Printf("arr3: %v
    ",arr3)
    
    	// 4. 指定索引初始化
    	arr4 := [5]int{1,2,3}
    	arr5 := [5]int{3:1, 4:2}
    	fmt.Printf("arr4: %v
    ",arr4)
    	fmt.Printf("arr5: %v
    ",arr5)
    
    	// 5. 赋值给别的数组
    	arr6 := [5]int{2:1, 3:6}
    	fmt.Printf("arr6: %v
    ",arr6)
    	var arr7 [5]int
    	// 两个数组的长度和类型必须相同,否则不认为是一个类型无法相互赋值
    	arr7 = arr6
    	fmt.Printf("arr7: %v
    ",arr7)
    }
    

    2. 数组遍历

    package main
    
    import "fmt"
    
    func main() {
    	// 创建数组
    	array := [5]int{1, 3, 5, 7, 9}
    	// 1. for
    	for i:=0; i< len(array);i++ {
    		fmt.Printf("index: %d, val: %d
    ", i, array[i])
    	}
    	fmt.Println()
    	// 2. for range
    	for index, value := range array {
    		fmt.Printf("index: %d, val: %d
    ", index, value)
    	}
    }
    

    3. 二维数组

    package main
    
    import "fmt"
    
    func main() {
    	// 创建3行两列数组
    	var array [3][2]int
    	// 数组赋值
    	array[0][0] = 00
    	array[0][1] = 01
    	array[1][0] = 10
    	array[1][1] = 11
    	array[2][0] = 20
    	array[2][1] = 21
    
    	fmt.Println(array)
    
    	// 遍历,两个循环遍历
    	for i := 0; i < 3; i++ {
    		for j := 0; j < 2; j++ {
    			fmt.Printf("row: [%d][%d], val: %d
    ", i, j, array[i][j])
    		}
    	}
    
    	fmt.Println("----------优美的分割线----------")
    	for i, val := range array {
    		for j, val2 := range val {
    			fmt.Printf("row: [%d][%d], val: %d
    ", i, j, val2)
    		}
    	}
    
    }
    

    4. 数组拷贝和传参

    package main
    
    import "fmt"
    
    func printArr(arr *[5]int) {
    	arr[0] = 10
    	for i, v := range arr {
    		fmt.Println(i, v)
    	}
    }
    
    func main() {
    	// 指针传递数组并修改会改变原有数组的值
    	var arr1 [5]int
    	printArr(&arr1)
    	fmt.Println(arr1)
    
    	arr2 := [...]int{2, 4, 6, 8, 10}
    	printArr(&arr2)
    	fmt.Println(arr2)
    }
    
  • 相关阅读:
    hibernate理解
    struts理解
    网上书城项目
    编码过程中遇到的问题
    JS回调函数
    requirejs 一个拆分js项目的类库
    jq插件开发总结
    转载-- 魔兽哈希算法封装和测试
    转载--C# PLINQ 内存列表查询优化历程
    Oracle删除死锁进程的方法
  • 原文地址:https://www.cnblogs.com/zhichaoma/p/12509448.html
Copyright © 2011-2022 走看看