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

Swift 2:“ Bool”类型的表达式模式不能与“ Int”类型的值匹配

濮阳景天
2023-03-14
问题内容

我正在将此问题设置为“ FizzBu​​zz”,而我的switch语句给了我一些问题,这是我的代码:

func fizzBuzz(n: Int) -> String {   
    switch n {
    case n % 3 == 0: print("Fizz")
    case n % 5 == 0: print("Buzz")
    case n % 15 == 0:print("FizzBuzz")
    }
    return "\(n)"
}

如果您可以为我提供指针/提示,而不是给我正确的代码,那将是一件好事:D我宁愿自己解决它,但一些提示也可以使我摆脱困境。


问题答案:

您可以case let where在单独检查它们之前使用并检查两者是否匹配:

func fizzBuzz(n: Int) -> String {
    let result: String
    switch n {
    case let n where n % 3 == 0 && n % 5 == 0:
        result = "FizzBuzz"
    case let n where n % 3 == 0:
        result = "Fizz"
    case let n where n % 5 == 0:
        result = "Buzz"
    default:
        result = "none"
    }
    print("n:", n, "result:", result)
    return result
}


 类似资料:
  • 请考虑以下代码: 表达式、和是被丢弃的值表达式,根据C++标准草案N4659/[expr].12,我希望lvalue-to-rvalue将应用于这三种情况。对于情况(2),这将导致调用volatile复制构造函数()[expr]/12 [...]如果表达式在此可选转换后是prvalue,则应用临时物化转换([Conv.RVAL])。[注意:如果表达式是类类型的lvalue,则它必须有一个易失性的复

  • 如果我以通常的方式声明一个类,我可以使用类名作为类型: 但是,如果我通过将类表达式分配给变量来声明一个类,我就不能将该名称用作类型: 建议使用不起作用,因为我想要的实例类型,而不是类本身的类型。 typescript操场示例 如何获取以第二种方式定义的类的实例类型? 我对以这种方式定义类感兴趣的原因是,我希望有一个接口来描述某些类将具有的静态方法,如此处的手册中所述(该部分中的第三个示例)。 下面

  • 有四种不同的类型:地点、语言、技术和行业。每个类型都有一个存储库,可以返回这些类型的集合。例如位置列表。每个类型都有一个类型为String的name属性。有一个字符串列表。它可以包含位置、语言等名称。我想编写一个函数来查找那些与字符串列表名称匹配的类型实体(位置、语言、...)。我在想这样的事情: 这是不正确的,那么如何对集合进行查询,然后如何确定name属性是否存在呢?