我喜欢使用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作为非可选值的赋值?这似乎应该能够做到。
答案 0 :(得分:12)
如果你在那里扔case
,那就行了。如下:
guard case let c = parts.count where c > 1 else { return }