有没有更聪明的方法来重写这个?
if ([cardName isEqualToString:@"Six"]) {
[self setValue:6];
} else if ([cardName isEqualToString:@"Seven"]) {
[self setValue:7];
} else if ([cardName isEqualToString:@"Eight"]) {
[self setValue:8];
} else if ([cardName isEqualToString:@"Nine"]) {
[self setValue:9];
}
最佳答案
不幸的是,他们不能。这是 switch 语句的最佳和最受追捧的用法之一,因此希望它们能够加入(现在)Java(和其他)潮流!
如果您正在使用卡片名称,也许可以为每个卡片对象分配一个整数值并打开它。或者可能是一个枚举,它被视为一个数字,因此可以打开。
例如
typedef enum{
Ace, Two, Three, Four, Five ... Jack, Queen, King
} CardType;
这样做,Ace 等于 case 0,2 等于 case 1,等等。
https://stackoverflow.com/questions/8161737/