当前位置: 首页 > 面试题库 >

For-in循环和类型转换仅适用于与类型匹配的对象

乐欣可
2023-03-14
问题内容

我在这里看到了答案,这些答案解释了如何告诉编译器循环中数组是某种类型的。

但是,Swift是否提供一种方法,使循环仅循环遍历数组中指定类型的项,而不崩溃或根本不执行循环?


问题答案:

您可以将for循环与case-pattern一起使用:

for case let item as YourType in array {
    // `item` has the type `YourType` here 
    // ...
}

这将仅对数组中类型(或可以强制转换为)的那些项执行循环体YourType

for case let textField as UITextField in self.view.subviews {
    if textField.text == "" {
        // ...
    }
}


 类似资料:
  • 问题内容: 我有这个for-in循环: 现在,我希望将按钮强制转换为自定义类,以便可以使用其属性。 我尝试了这个: 但是它不起作用,给我一个错误: 我尝试了这个: 但是,这也不起作用。 问题答案: 对于 Swift 2 和更高版本: Swift 2 在 for 循环中添加了 大小写模式 ,这使得在 for 循环中进行类型转换更加容易和安全: 为什么这比您在 Swift 1.2 和更早版本中可以做的

  • 我的for-each循环中出现了这个错误:

  • 问题内容: 我试图弄清楚如何为通用类(在Swift中)实现类型约束,它将通用类型限制为仅数字类型。例如Double,Int等,但不是字符串。谢谢你的帮助。 问题答案: 您可以使用尖括号为通用类(对函数使用相同的语法)指定类型约束(使用类和协议): 要在单个类型上指定多个需求,请使用子句: 但是,您似乎无法在泛型参数子句中指定可选要求,因此一种可行的解决方案是创建一个协议,使所有数字类型都通过扩展来

  • 问题内容: 我正在创建单词表示该句子的包。然后将句子中存在的单词与文件“ vectors.txt”进行比较,以获取其嵌入矢量。在获取句子中每个单词的向量之后,我将句子中单词的向量取平均值。这是我的代码: 不知道为什么,但是我得到这个错误: PS嵌入向量如下所示: 使用np.sum后,出现此错误: 问题答案: 您有一个numpy的字符串数组,而不是浮点数。这就是一个小端编码的unicode字符串,最

  • 问题内容: 我为什么会收到错误:java:16:错误:for(int i = 0; i <9; i ++){类型的非法启动我已经检查了旧实验室,这是我认为的正确用法。 问题答案: for循环必须位于一对括号之间的方法,构造函数中或最低限度的位置。但是可能是构造函数。

  • 问题内容: 我在Javascript中遇到了奇怪的行为。我懂了 “对象不支持此属性或方法” 以下代码中的函数异常: 当我使用以下代码更改代码时,问题消失了: inside的值是多少? 问题答案: 不要用于数组迭代。 重要的是要了解,用于访问索引的Javascript数组的方括号语法()实际上是从… 继承的。 该结构不能像其他语言(php,python等)中所看到的那样更传统。 Javascript