Golang 数组与切片

好的代码会说话,见码

// 数组
// 按值传递的(即是传递的副本,定长
// [length]Type
// [N]Type{value1, value2, ..., valueN}
// [...]Type{value1, value2, ..., valueN}

//  切片
// 引用类型,不定长
// 会创建一个隐藏的初始化为零值的数组,返回一个引用该隐藏数组的切片

// make([ ]Type, length, capacity)
// make([ ]Type, length)
// [ ]Type{}
// [ ]Type{value1, value2, ..., valueN}

package main

import (
    "fmt"
)

func main() {
    // 定义go数组,值传递
    // 省略号语法(go语言自动计算数组长度)
    a := [...]int{1, 2, 3, 4, 5, 6, 7}
    fmt.Printf("数组%v 的长度和容量是: %d 和 %d \n", a, len(a), cap(a))
    fmt.Printf("数组%v 中的项是:", a)

    // for ... range 迭代数组列表
    for _, value := range a {
        fmt.Printf("%d ", value)
    }

    fmt.Println()

    s1 := a[3:6]
    fmt.Printf("切片%v 的长度和容量是: %d 和 %d \n", s1, len(s1), cap(s1))
    fmt.Printf("在切片内的项: %v 是:", s1)

    for _, value := range s1 {
        fmt.Printf("%d ", value)
    }

    fmt.Println()

    s1[0] = 456
    fmt.Printf("改变切片后的数组项是:%v", s1)
    fmt.Println()
    for _, value := range a {
        fmt.Printf("% d", value)
    }

    fmt.Println()

    s2 := make([]int, 10, 20)
    s2[4] = 5
    fmt.Printf("切片 %v is: %d and %d\n", s2, len(s2), cap(s2))
    fmt.Printf("在切片 %v 项是:", s2)
    for _, value := range s2 {
        fmt.Printf("% d", value)
    }

    fmt.Println()

}

结果

数组[1 2 3 4 5 6 7] 的长度和容量是: 7 和 7 
数组[1 2 3 4 5 6 7] 中的项是:1 2 3 4 5 6 7 
切片[4 5 6] 的长度和容量是: 3 和 4 
在切片内的项: [4 5 6] 是:4 5 6 
改变切片后的数组项是:[456 5 6]
 1 2 3 456 5 6 7
切片值: [0 0 0 0 5 0 0 0 0 0] is: 10 and 20
在切片 [0 0 0 0 5 0 0 0 0 0] 项是: 0 0 0 0 5 0 0 0 0 0
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值