我正在学习一些教程,并且有一行我不太了解的代码:
- (NSString *)rankAsString
{
return @[@"?",@"A",@"2",@"3",@"4",@"5",@"6",@"7",@"8",@"9",@"10",@"J",@"D",@"K"][self.rank];
}
返回什么?谢谢!
答案 0 :(得分:6)
这也称为Lookup Table,可用于代替switch / case或if / else等情况。
也就是说,代码创建一个NSArray(NSString)用作查找,然后在指定的序号位置检索字符串 - 例如Ace(“A”)排名第1,King(“K”)排名第13位。
考虑代码是否写成:
NSArray* array = @[@"?", @"A", ..., @"K"];
return array[self.rank];
这里可以看出该数组是一个单独的表达式。 @[..]
涵盖了@".."
,array[..]
和{{1}}表单。语法可以在Apple LLVM编译器4中使用。