84669 人學習
152542 人學習
20005 人學習
5487 人學習
7821 人學習
359900 人學習
3350 人學習
180660 人學習
48569 人學習
18603 人學習
40936 人學習
1549 人學習
1183 人學習
32909 人學習
请问图片当中这个问题,为什么答案是C呢?
走同样的路,发现不同的人生
switch中的條件必須是確定的,相信你所接觸的絕大多數語言應該都是如此吧。 也就是說,switch條件之間應該是不能產生歧義的。 在D中,條件1和條件c就可能產生歧義,因為c為變量,所以當c等於1時就可能造成程式出現不可預測的情況。所以編譯器乾脆就禁止出現這種情況。 (雖然這裡c賦值為2,但是由於不是常數,所以編譯器無法保證運行時變數是否會被改變,所以仍然認為它會產生歧義)簡單的說,就是switch條件裡,是不允許出現變數的。 (這裡變數是指能夠改變此條件判斷結果的量,在swift中,允許將條件匹配值賦值給變數的語法)
簡單來講,因為A B D不對
A B D
switch中的條件必須是確定的,相信你所接觸的絕大多數語言應該都是如此吧。
也就是說,switch條件之間應該是不能產生歧義的。
在D中,條件1和條件c就可能產生歧義,因為c為變量,所以當c等於1時就可能造成程式出現不可預測的情況。所以編譯器乾脆就禁止出現這種情況。 (雖然這裡c賦值為2,但是由於不是常數,所以編譯器無法保證運行時變數是否會被改變,所以仍然認為它會產生歧義)
簡單的說,就是switch條件裡,是不允許出現變數的。 (這裡變數是指能夠改變此條件判斷結果的量,在swift中,允許將條件匹配值賦值給變數的語法)
簡單來講,因為
A B D
不對