swift - 在 Swift 中遍历数组时输出 "VSs5Range"是什么?

标签 swift

在 .playground 中,我只是在探索 Swift,我试图以一种奇怪的方式创建一个数组,嗯,只是因为。

所以这不会像我天真地希望的那样创建项目 0、1、2...50 的数组:

let numberArray = [0...50]

并尝试遍历它:

for num in numberArray {
    println("The number is \(num)")
} 

给出这个控制台输出:

The number is VSs5Range (has 2 children)

这是什么意思?在 .swift 文件中运行它,构建失败,因此控制台输出没有给我任何信息。

最佳答案

发生的事情是您正在[0...50] 创建一个数组,但该数组只有一个元素:对象0.. .50,这是 Swift 中的一个新结构,表示一个 range(显然是 VSs5Range 类型。

因此您在初始数组上的循环显示单个数组元素,它将自身写为类型名称和它具有的端点数。

范围不是数组,它介于生成器(C# 中的迭代器)和测试单元之间。您可以在 switch 语句中使用它,例如 (case 0..3:) 以及从中生成数字 (for i in 0..3 { })。我个人觉得它很酷!

关于swift - 在 Swift 中遍历数组时输出 "VSs5Range"是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24087112/

相关文章:

ios 11 UITableViewHeaderFooterView 无法在动画中正确滚动

ios - 如何让CATransaction无限重复? - swift

Swift - 类型 'int' 不符合协议(protocol) 'intervaltype'

swift Firestore 'absl/numeric/int128_have_intrinsic.inc' 文件未找到

ios - 在堆栈 View 中调整 UIView 的大小

ios - Swift TableView 重新加载但单元格在单击之前保持不变

ios - NSURLSessionConfiguration 和 NSMutableURLRequest 缓存策略的区别

swift - 带有函数调用选项的 if 语句

swift - iOS 14 SwiftUI 键盘自动提升 View

ios - 线程 :1 Signal SIGAGBRT