2017-04-12 36 views
7

正如標題所說,我剛碰到一個案例,如果&&(AND)和,在Swift中給出相同的結果。我測試下面的代碼:Swift中的「&&」和「,」是否一樣?

let a = 5 
let b = 6 

if a<6, b>0 { 
    print("should be true") 
} 

if a<6, b<0 { 
    print("should be false") 
} 

if a>6, b>0 { 
    print("should be false") 
} 

if a>6, b<0 { 
    print("should be false") 
} 

它只記錄:

應該是真實的

所以,,行爲就像&&,我是不是正確的?

+0

對if語句似乎是對的,但是你不能像'return(a> 4,b <4)'那樣編寫代碼,所以兩者不相同 – XmasRights

+2

實際上它的行爲就像一個*條件列表*在「守衛」之後,「如果讓」和「守衛讓」 – vadian

回答

11

他們可以用於類似的情況,但這並不意味着他們是完全一樣的。

考慮:

if (a && b) || c 

你不能寫

if (a, b) || c 

即使a && b || ca, b || c不同。

if a, b是一樣的東西

if a { 
    if b { 
     ... 
    } 
} 

兩個表達式必須進行評估,以true但他們仍然是兩個獨立的表達式。那裏我們不應該想象&&

爲什麼我們需要,運算符?

需要操作員將可選的綁定與布爾條件相結合,例如,

if let a = a, a.isValid() { 

因爲&&不會幫助我們在這種情況下。

相關問題