有条件的" in"对于Swift中的数组

时间:2014-12-30 22:39:06

标签: swift

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

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

错误消息显示"声明的语句块是未使用的闭包"但我无法找到任何可以使用的合理解释。

知道我做错了什么吗?

2 个答案:

答案 0 :(得分:3)

我建议使用数组代替元组作为基本素数。然后你可以使用contains()检查一个数字是否在你的基本素数数组中。像这样的东西会起作用:

let basicPrimes = [2, 3, 5, 7, 11, 13, 17, 19]
let number = 5

if contains(basicPrimes, number)
{
    println("Is prime!")
}

答案 1 :(得分:1)

您的代码中有2个错误:

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

  2. 要检查序列中是否包含元素,您必须使用contains全局函数 - in是闭包中使用的关键字,这就是原因对于那个奇怪的错误消息

  3. 所以你的代码应该是这样的:

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