You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Swift 4中不使用索引通过for循环填充数组的技术问询

实现无索引的数组填充方案

嘿,我帮你把这段Swift代码改成不依赖索引的for循环写法吧~原来的代码用了索引去访问数组元素,其实完全可以简化掉,下面给你两种可行的方案:

方案一:简化原有循环结构

直接去掉索引变量的使用,每次生成随机数后直接处理,不用通过索引去取数组元素:

func createValues() -> Array<Int> {
    let usableRange: Range<Int> = 6..<11
    var arrayOfValues: Array<Int> = []
    
    // 用下划线代替索引变量,明确表示我们不需要用到它
    for _ in 0..<10 {
        let randomValue = Int.random(in: usableRange)
        arrayOfValues.append(randomValue)
        print(randomValue) // 直接打印刚生成的值,无需索引
    }
    
    return arrayOfValues
}

这里的核心改动是用_替代了原来的i,因为我们根本不需要这个索引值。每次生成的随机数先存到临时变量里,既可以添加到数组,又能直接打印,彻底摆脱了对数组索引的依赖。

方案二:Swift风格的函数式写法

如果想更简洁,还可以用map直接生成目标数组,再用forEach打印元素,全程不用索引:

func createValues() -> Array<Int> {
    let usableRange: Range<Int> = 6..<11
    
    // 用map将范围直接转换为包含随机数的数组
    let arrayOfValues = (0..<10).map { _ in
        Int.random(in: usableRange)
    }
    
    // 遍历数组打印每个元素,无需索引
    arrayOfValues.forEach { print($0) }
    
    return arrayOfValues
}

这种写法更符合Swift的函数式编程习惯,map帮我们完成了数组的生成,forEach负责遍历打印,全程不需要手动管理索引,代码更简洁易读。

内容的提问来源于stack exchange,提问作者Marcal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 09:28:46