有没有更智能的方法来重写这个?
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,以此类推。