我正在学习一些教程,但有一行代码我不太理解:
- (NSString *)rankAsString
{
return @[@"?",@"A",@"2",@"3",@"4",@"5",@"6",@"7",@"8",@"9",@"10",@"J",@"D",@"K"][self.rank];
}
返回了什么?谢谢!
最佳答案
这也称为 Lookup Table并且可以在这种情况下代替 switch/case 或 if/else。
也就是说,代码创建一个 NSArray(属于 NSString)用作查找,然后在指定的序号位置检索字符串 - 例如Ace(“A”)是第 1 位,King(“K”)是第 13 位。
考虑一下代码是否写成了:
NSArray* array = @[@"?", @"A", ..., @"K"];
return array[self.rank];
这里可以看出数组是一个单独的表达式。 @[..]
、@".."
和array[..]
形式包含在Clang documentation on
OBJECTIVE-C LITERALS 中。 ;该语法可以在 Apple LLVM Compiler 4 中使用。
关于objective-c - "return @[blah, blah] [self.foo]"是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19942452/