使用具有非可选值赋值的guard

时间:2016-02-15 17:03:44

标签: swift

我喜欢使用guard,因为它可以让你的内涵清晰明了。我已经将它用于像这样的可选版本......

guard let c = MyOptionalArray else { return }

以及检查非选项的更传统的边界......

guard MyArray.count > 0 else { return }

但是现在我想在下面的代码中使用count。所以我做了......

guard let c = MyArray.count > 0 else { return }

显然不起作用,所以我做了应该......

guard let c = parts.count where c > 1 else { return }

但那说Initializer for conditional binding must have Optional type, not 'Int'。现在我理解了错误,并尝试了一些看似明显的格式变化,但没有去。有没有办法使用guard作为非可选值的赋值?这似乎应该能够做到。

1 个答案:

答案 0 :(得分:12)

如果你在那里扔case,那就行了。如下:

guard case let c = parts.count where c > 1 else { return }