在 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 代码翻译过去了。 |