Objective-C的switch
語句支持您所看到的值範圍,但不支持變量匹配。
int numberOfKittens = 12;
NSString *kittenDescription;
switch (numberOfKittens) {
case 0 ... 5:
kittenDescription = @"Need more kittens";
break;
case 6 ... 10:
kittenDescription = @"That's a good number of kittens.";
break;
case 11 ... 20:
kittenDescription = @"Are you sure you can handle that many kittens?";
break;
default:
kittenDescription = @"You must really love kittens!";
}
...但試圖把一個變量代替任何這些將失敗:
所以,因爲我已經用準確的整數下面的代碼是有效的。
如果這是你非常想要的東西,可以考慮使用Swift,因爲它具有更具表達力的switch
匹配系統。下面是斯威夫特同樣的代碼,現在用一個變量用來匹配情況:
let upperLimit = 20
let numberOfKittens = 19
var kittenDescription = ""
switch (numberOfKittens) {
case 0 ... 5:
kittenDescription = "Need more kittens"
case 6 ... 10:
kittenDescription = "That's a good number of kittens."
case 11 ... upperLimit:
kittenDescription = "Are you sure you can handle that many kittens?"
default:
kittenDescription = "You must really love kittens!"
}
是啊,我我試圖讓從if語句:-( –
你可以使用斯威夫特,而不是Objective-C的離開我在Swift中不工作,但我知道它有一個更靈活的'switch'語法。 – rmaddy