GO语言基础教程(51)Go数组之数组元素的访问:当数组遇上GO:一场说走就走的“内存旅行”全攻略!

嗨,各位码农朋友们!今天咱们要来聊一聊Go语言里那个看似简单却暗藏玄机的小可爱——数组。别以为它只是个平平无奇的数据容器,实际上啊,它可是个有“强迫症”的内存管理员!

想象一下,数组就像一个严格遵守纪律的军队方阵,每个士兵(元素)都笔直地站在自己固定的位置上,等着你随时检阅。但你要是想跟这些士兵互动,得先知道他们的“点名规则”才行。这不,今天我就带大家来一场说走就走的“数组点名”之旅!

第一章:初识数组——Go世界的“集体宿舍”

在开始点名之前,咱们先得搞清楚这个“集体宿舍”是怎么建的。Go语言里的数组是个相当固执的家伙,一旦你定义了它的规模,它就再也不肯改变了。

// 来个简单的数组声明示范
var classroom [30]string // 一个能容纳30个学生名字的数组
var scores [5]int // 一个存储5个成绩的数组

// 直接初始化也是可以的
friends := [3]string{"小明", "小红", "小刚"}

看到没?数组在声明时就确定了大小,这点跟它的亲戚“切片”完全不同。数组就像个固定座位的教室,有多少座位是早就定好的,不能临时加座也不能撤座。

内存小贴士:数组在内存中是连续存储的,就像一排连号的酒店房间。每个元素都紧挨着前一个元素,这种结构让数组的访问速度特别快,因为CPU缓存特别喜欢这种连续的内存块!

第二章:数组点名术——索引访问的“正确姿势”

好了,现在咱们的“士兵方阵”已经排好了,接下来就是点名时间!数组访问的核心就是通过索引(下标)来读写元素。

2.1 基础点名法:读取元素
package main

import "fmt"

func main() {
    // 创建一个游戏角色数组
    characters := [4]string{"战士", "法师", "射手", "辅助"}
    
    // 访问第一个元素(索引0)
    fmt.Printf("第一个角色:%s\n", characters[0])
    
    // 访问最后一个元素(索引3)
    fmt.Printf("最后一个角色:%s\n", characters[3])
    
    // 来个循环遍历所有角色
    fmt.Println("=== 所有角色 ===")
    for i := 0; i < len(characters); i++ {
        fmt.Printf("位置%d:%s\n", i, characters[i])
    }
}

运行结果:

第一个角色:战士
最后一个角色:辅助
=== 所有角色 ===
位置0:战士
位置1:法师  
位置2:射手
位置3:辅助

重点来了:Go语言的数组索引是从0开始的!这是很多新手容易踩坑的地方。为什么从0开始?因为数组名实际上代表的是数组首元素的内存地址,索引表示的是偏移量。第一个元素的偏移量当然是0啦!

2.2 高级点名术:修改
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

值引力

持续创作,多谢支持!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值