我想检查以下值firstName和lastName。但斯威夫特不允许我访问。它给出的错误就像"二元运算符&&&'不能适用于两个' Int'操作数"
if firstName.length && lastName.length {
}
答案 0 :(得分:1)
在Swift中你不能像在C和Objective-C中那样检查非null,你必须写
Before
0100
After
1011
答案 1 :(得分:0)
@Vadian有一个很好的答案,但可以更明确地说 - 而且还有一个额外的皱纹:
对于逻辑运算符(&&
和||
)以及if
和while
语句的条件,C接受任何类型 - 它只会处理任何零值(其中包括空指针,但这里的字符串长度只是一个零整数)为false,其他任何为true。
但是,在Swift中,这种布尔逻辑上下文中允许的唯一类型是Bool
- 你不能传递一个整数并期望分支值是否为零,所以你必须使用比较运算符例如>
或==
,或返回Bool
值的属性或方法。
由于您正在处理String
,因此您最好使用isEmpty
属性。获取Swift String
的长度不是“自由”计算 - 相同的字节数可以是不同数量的人类可读字符,具体取决于这些字节是什么,因此您无法在不检查字节的情况下计算字符数。回答字符串是否为空而不是检查所有字节要快得多。
(那么,也许你还没有使用Swift字符串?那些没有你正在使用的length
属性。)