• Golang的数组


    Golang数组

    package main
    import "fmt"
    
    func main()  {
    	// 定义一个长度为10,元素类型为string的值
    	li2 := [10]string{}
    	//循环数组
    	for i ,v := range li2{
    		fmt.Printf("索引:%d,元素:%s 
    ",i,v)
    	}
    
    	// 给数组中某个元素赋值
    	li2[1] = "miao"
    
    	//调用search
    	search(li2)
    	fmt.Println(li2)
    }
    
    // 定义一个方法,传入的参数是数组,并在数组中修改索引为2的元素
    func search(array [10]string)  {
    	array[2] = "123"
    	fmt.Println(array)
    }
    

    数组的切片:

    package main
    
    import "fmt"
    
    func main()  {
    
    	/*
    	//定义一个数组
    	var myArray[5]int = [5]int{1,2,3,4,5}
    
    	//基于数组创建一个数组切片
    	var mySile[]int = myArray[:3]
    
    	//输出MyArray中所有的元素
    	fmt.Print("MyArray:")
    	for _,v := range myArray{
    		fmt.Print(v," ")
    	}
    
    	fmt.Print("
    MySile:")
    	for _,v := range mySile{
    		fmt.Print(v," ")
    	}
    	// Go语言支持Myarray[first:last]进行切片生成数组
    	fmt.Print("
    MyArray[2:4]:")
    	for _,v := range myArray[2:4]{
    		fmt.Print(v)
    	}
    	*/
    	// 数组切片的其他方法
    	myArray := make([]int,5,10) //make第二个参数是数组的长度,第三个参数是数组的总长度
    	mysile := []int{1,2,3}
    	myArray = append(myArray,mysile[2]) // 使用append向数组myArray添加三个参数,参数也可以是一个切片
    	myArray = append(myArray,1,2,3)
    	fmt.Println(myArray)
    	//mySile := []int{6,7,8}
    
    	// cap() len()
    	// cap()函数返回的是数组切片分配的空间大小,len()函数返回的是数组切片中当前所存储的元素个数
    	fmt.Printf("map(myArray):%d 
    ",cap(myArray))
    	fmt.Printf("len(myArray):%d",len(myArray))
    }
    

    基于数组切片创建数组切片与 copy的使用

    	myArray := make([]int, 10, 20)
    
    	// 切片1
    	mySile1 := myArray[2:8]
    	fmt.Println(mySile1)
    
    	//基于切片1创建数组切片
    
    	mySile2 := mySile1[2:4]
    	fmt.Println(mySile2)
    
    	/*
    	虽然mySile1只包含5个元素。只要这个选择的范围不超
    	过myArray存储能力(即cap()返回的值),那么这个创建程序就是合法的。mySile2中超出
    	mySile1元素的部分都会填上0。
    	 */
    
    	 ///////////////////// 内容复制 /////////////////
    	 slice1 := []int{1,2,3,4,5}
    	 slice2 := []int{5,4,3}
    	 fmt.Println(slice1,slice2,"
    ")
    	 copy(slice2,slice1) // 只会复制slice1的前3个元素到slice2中
    	 copy(slice1,slice2) // 只会复制slice2的3个元素到slice1的前3个位置
    	 fmt.Println(slice1,slice2)
    
  • 相关阅读:
    [Luogu P4178]Tree 题解(点分治+平衡树)
    [20190725NOIP模拟测试8]题解
    暑假集训考试反思+其它乱写
    [bzoj2752]高速公路 题解(线段树)
    bzoj1211树的计数 x bzoj1005明明的烦恼 题解(Prufer序列)
    [CQOI2014]数三角形 题解(找规律乱搞)
    [Catalan数三连]网格&有趣的数列&树屋阶梯
    [NOIP模拟测试7]visit 题解(组合数学+CRT+Lucas定理)
    [7.22NOIP模拟测试7]方程的解 题解(扩展欧几里得)
    leetcode371
  • 原文地址:https://www.cnblogs.com/wualin/p/10643610.html
Copyright © 2020-2023  润新知