我知道还有另一个主题有相同的问题,但它并没有说明实际导致问题的原因
我是swift的新人,所以我对此感到困惑。 我写了一个非常简单的程序,该程序应该以默认数量的关注者(0)开头,并将其分配给' defaultfollowers'一旦它变为1,它就会成为"追随者",但我得到了错误" Type' Int'不符合协议' BooleanType'"。造成这种情况的原因和为什么
var followerdeafault = 0
var followers = 0
if (followerdeafault++){
var followers = followerdeafault
}
答案 0 :(得分:1)
在Swift中你无法隐式替换Int而不是Bool。这样做是为了防止混淆并使代码更具可读性。
所以不是这个
let x = 10
if x { /* do something */ }
你必须写下这个:
let x = 10
if x != 0 { /* do something */ }
另外,您无法通过Optional而不是Bool检查它是否nil
,就像在Objective-C中一样。改为使用显式比较:
if myObject != nil { /* do something */ }
答案 1 :(得分:0)
正如评论所说,您正试图在Int
比较声明中使用Bool
。您正在寻找的可能是这样的:
if followerdeafuaut++ == 1 { ... }
另请注意:++
运算符已弃用,正在转向使用+=