【发布时间】:2018-12-11 03:28:52
【问题描述】:
有没有更好的方法在一行中执行这个逻辑?
- (BOOL)isValueInRange {
return ((level.integerValue > 100) || (level.integerValue < 0)) ? NO : YES;
}
【问题讨论】:
标签: objective-c ternary-operator boolean-logic
有没有更好的方法在一行中执行这个逻辑?
- (BOOL)isValueInRange {
return ((level.integerValue > 100) || (level.integerValue < 0)) ? NO : YES;
}
【问题讨论】:
标签: objective-c ternary-operator boolean-logic
你可以这样做:
return level.integerValue >= 0 && level.integerValue <= 100;
如果值在范围内,则返回 true,否则返回 false。
【讨论】:
! 符号。好东西!
我不认为你可以避免重复level.integerValue 两次。
return !((level.integerValue > 100) || (level.integerValue < 0))
你也可以使用NSLocationInRange:
NSLocationInRange(level.integerValue, NSMakeRange(0, 100)
【讨论】: