码迷,mamicode.com
首页 > 编程语言 > 详细

golang数组与切片

时间:2018-12-04 13:17:26      阅读:214      评论:0      收藏:0      [点我收藏+]

标签:package   style   技术分享   lan   ack   图片   nta   span   gear   

golang中坑的慢慢踩!

我们都知道golang中的切片是引用类型,但是在函数中使用append给切片追加元素是行不通的,需要使用切片的指针类型才能增加元素

数组的使用:

package main

import (
    "fmt"
)

func ChangeArr(arr [5]int) {
    arr[0] = 6
}

func ChangeArr2(arr *[5]int) {
    arr[0] = 6
}

func main() {
    a := [5]int{1, 2, 3, 4, 5}
    PrintArr(a)
    ChangeArr(a)
    PrintArr(a)
    ChangeArr2(&a)
    PrintArr(a)
}

func PrintArr(arr [5]int) {

    fmt.Println("\n打印数组:")
    for _, v := range arr {
        fmt.Print(v, ",")
    }
}

运行结果:

技术分享图片

 

切片的使用:

package main

import (
    "fmt"
)

func ChangeArr(arr []int) {
    arr[1] = 20
    arr = append(arr, 8) //此处的元素并没有增加到切片
}

func ChangeArr2(arr *[]int) {
    (*arr)[0] = 6          //因为传入的是切片指针,所以所有使用切片的地方都必须是指针类型的切片(这里与数组不同)
    *arr = append(*arr, 7) //此处的元素添加进了切片
}

func main() {
    a := []int{1, 2, 3, 4, 5}
    PrintArr(a)
    ChangeArr(a)
    PrintArr(a)
    ChangeArr2(&a)
    PrintArr(a)
}

func PrintArr(arr []int) {

    fmt.Println("\n打印切片:")
    for _, v := range arr {
        fmt.Print(v, ",")
    }
}

运行结果:

技术分享图片

 

golang数组与切片

标签:package   style   技术分享   lan   ack   图片   nta   span   gear   

原文地址:https://www.cnblogs.com/xbblogs/p/10063308.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!