【问题标题】:How to set array starting and end indices in swift?如何快速设置数组开始和结束索引?
【发布时间】:2016-08-24 13:51:44
【问题描述】:

我尝试从 Playground 中创建的 1-100 个元素创建一个数组,但是当我尝试打印时,它不会打印数组中的值。

代码:

var ab:Array = [1...100]

for i in ab {
    print(i)
}

输出:

但在操场上它没有显示任何错误。 我做错什么了吗? 谢谢

【问题讨论】:

  • Option-点击ab看看你创造了什么样的价值......

标签: arrays swift swift-playground


【解决方案1】:

您创建了一个由Range<Int> 元素组成的数组(单个,1..<101

var ab: Array = [1...100] // element TYPE inferred from 1...100
                          // to be Range<Int>
print(ab.dynamicType)
   // Array<Range<Int>>

但我假设您正在尝试创建一个包含 100 个 Int 元素的数组。

var ab = Array(1...100) // Array with elements intialized to Int,
                        // using Range<Int> to intialize

for i in ab {
    print(i)
} // 1 2 3 ... 100

如果您只想打印1...100 范围内的数字,则不必创建一个数组(如果是整数)(或者根本不需要创建一个数组)。相反,您可以使用单个 Range&lt;Int&gt; 变量并遍历此范围中包含的元素。例如

let myRange = 1...5 // inferred as type Range<Int>

for i in myRange {
    print(i) // the type of 'i' is Int, the same as in
             // the array case above.
} // 1 2 3 4 5

【讨论】:

    【解决方案2】:

    使用cleareffective ;

    var ab = Array(1...100)
    for i in ab {
        print(i)
    }
    

    Output

    1 2 3.... 100

    【讨论】: