在 OC 中可以这样写
NSTimeInterval timeInterval = [self timeIntervalSinceNow];
timeInterval = -timeInterval;
timeInterval = timeInterval - 8 * 60 * 60;
long temp = 0;
NSString *result;
if (timeInterval < 60) {
result = [NSString stringWithFormat:@"just"];
} else if ((temp = (long) (timeInterval / 60)) < 60) {
result = [NSString stringWithFormat:@"%ld m", temp];
} else if ((temp = temp / 60) < 24) {
result = [NSString stringWithFormat:@"%ld h", temp];
}
就是在 if 的时候可以对 temp 同时进行赋值与比较,那么 swift3 可以这样写吗,试了一会总是报红。
1
JohnSmith 2017-07-21 09:53:17 +08:00 via Android
If let ?
|
3
yzyzsun 2017-07-21 10:34:30 +08:00 via iPad
现在 Swift 的赋值语句没有返回值,不仅是这个例子,连续赋值( a = b = c )也是不行的
|
4
hekunhotmail 2017-07-21 11:10:34 +08:00
所以 swift 好傻逼啊,写点简洁的代码都不行,oc 想要写简洁点没啥障碍
|
5
isweal OP @hekunhotmail swift 也有 swift 的好啊
|
6
hekunhotmail 2017-07-21 11:43:26 +08:00
@isweal 我只是说它这方面确实挺 low 得,好的地方都还不错
|
7
acumen 2017-07-21 13:15:55 +08:00
逗号表达式? if let temp = a, temp < 60
|
9
isweal OP 最后我用了一堆嵌套 if else 把之前写的 OC 代码翻译过去了。
|