有条件的;在;用于Swift中的数组

有条件的;在;用于Swift中的数组,swift,Swift,我尝试了所有想象的方法,并在谷歌、StackOverflow和官方参考书中进行了搜索,但仍然无法找到如何在Swift中进行此类操作: let basicPrimes = (1,2,3,5,7,11,13,17,19) if number in basicPrimes { println("Is prime!") } 错误消息说“带括号的语句块是一个未使用的闭包”,但我找不到任何合理的解释,我可以利用它 知道我做错了什么吗?您的代码中有两个错误: 数组是用方括号初始化的-您创建的是一个元

我尝试了所有想象的方法,并在谷歌、StackOverflow和官方参考书中进行了搜索,但仍然无法找到如何在Swift中进行此类操作:

let basicPrimes = (1,2,3,5,7,11,13,17,19)
if number in basicPrimes {
    println("Is prime!")
}
错误消息说“带括号的语句块是一个未使用的闭包”,但我找不到任何合理的解释,我可以利用它


知道我做错了什么吗?

您的代码中有两个错误:

  • 数组是用方括号初始化的-您创建的是一个元组,它不是序列类型

  • 要检查元素是否包含在序列中,必须使用
    contains
    全局函数-
    in
    是闭包中使用的关键字,这就是产生奇怪错误消息的原因

  • 因此,您的代码应该如下所示:

    let basicPrimes = [1,2,3,5,7,11,13,17,19]
    if contains(basicPrimes, number) {
        println("Is prime!")
    }
    

    您的代码中有2个错误:

  • 数组是用方括号初始化的-您创建的是一个元组,它不是序列类型

  • 要检查元素是否包含在序列中,必须使用
    contains
    全局函数-
    in
    是闭包中使用的关键字,这就是产生奇怪错误消息的原因

  • 因此,您的代码应该如下所示:

    let basicPrimes = [1,2,3,5,7,11,13,17,19]
    if contains(basicPrimes, number) {
        println("Is prime!")
    }
    

    我建议对基本素数使用数组而不是元组。然后可以使用
    contains()
    检查基本素数数组中是否有数字。类似这样的方法会奏效:

    let basicPrimes = [2, 3, 5, 7, 11, 13, 17, 19]
    let number = 5
    
    if contains(basicPrimes, number)
    {
        println("Is prime!")
    }
    

    我建议对基本素数使用数组而不是元组。然后可以使用
    contains()
    检查基本素数数组中是否有数字。类似这样的方法会奏效:

    let basicPrimes = [2, 3, 5, 7, 11, 13, 17, 19]
    let number = 5
    
    if contains(basicPrimes, number)
    {
        println("Is prime!")
    }
    

    学究:。你需要使用元组吗?为什么不做一个数组呢?然后可以使用
    contains()
    Related:.pedantic:。是否需要使用元组?为什么不做一个数组呢?然后可以使用
    contains()
    Related:。