我最近一直在学习 ruby,并且基本上爱上了 ||= 功能,因为它可以使在 Objective C 中编写惰性 getter 变得更加容易。
目前我写吸气剂,例如:
- (NSArray *)myArray {
if (!_myArray) {
_myArray = [NSArray array];
}
return _myArray
}
除非我在 ||= 中遗漏了一些东西,否则我可以使用以下方法在 Ruby 中编写前面的代码:
- (NSArray *)myArray {
return _myArray ||= [NSArray array];
}
那显然要干净得多。Objective-C 语言/运行时中是否有任何东西可以让你做到这一点?
此外,以下是吸气剂的单行三元组,我不确定它是否与上面发布的经过验证的真实方法一样有效(第一个片段)。有人可以告诉我这样做是否有任何问题:
- (NSArray *)myArray {
return _myArray = _myArray ? _myArray : [NSArray array];
}