我不明白这里发生了什么,我正在尝试使用正则表达式,我对以下内容感到困惑。
BOOL isMatch = match != nil;
完整的代码是
NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"[a-z0-9_]" options:NSRegularExpressionCaseInsensitive error:nil];
NSTextCheckingResult *match = [regex firstMatchInString:string options:0 range:NSMakeRange(0, [string length])];
BOOL isMatch = match != nil;
答案 0 :(得分:2)
如果我们使用一些括号,可能会更清楚:
BOOL isMatch = (match != nil);
也就是说,如果match
不是nil
,则isMatch
将为真(YES
)。
答案 1 :(得分:1)
BOOL isMatch = match != nil;
是一种较短的写作方式
BOOL isMatch;
if(match != nil)
{
isMatch = YES; // You found a match!
}
else
{
isMatch = NO; // No match found :(
}
答案 2 :(得分:1)
这是一个基本的C语句,涉及变量赋值(位于=
的左侧)和一个表达式(位于=
的右侧)。
让我们从右侧开始:
match != nil;
评估此表达式。 !=
运算符(不等于或不等)的计算结果为true或false。如果match
已分配给非零值,则为true。如果尚未指定nil
值,则为false。
然后将此真或假结果分配给BOOL
变量。真实的结果是YES
,错误的结果是NO
。
所以在英语中,声明说:
如果匹配的值为非零值,则
isMatch
为YES
,否则为NO
。
答案 3 :(得分:0)
将其分解为位,考虑是否将match != nil
放入if语句,而是将结果分配给bool