天蓬老师2017-04-17 14:43:23
switch中的條件必須是確定的,相信你所接觸的絕大多數語言應該都是如此吧。
也就是說,switch條件之間應該是不能產生歧義的。
在D中,條件1和條件c就可能產生歧義,因為c為變量,所以當c等於1時就可能造成程式出現不可預測的情況。所以編譯器乾脆就禁止出現這種情況。 (雖然這裡c賦值為2,但是由於不是常數,所以編譯器無法保證運行時變數是否會被改變,所以仍然認為它會產生歧義)
簡單的說,就是switch條件裡,是不允許出現變數的。 (這裡變數是指能夠改變此條件判斷結果的量,在swift中,允許將條件匹配值賦值給變數的語法)