是沒有可能創造一個範圍,並調用其包含的方法是這樣的:斯威夫特範圍... 12.contains(1)不能援引「包含」與(INT)
1...12.contains(1)
當我創建一個var range = 1...12
並打印它的dynamicType時,我得到一個Swift.Range<Swift.Int>
,所以我猜測不是類型不匹配問題,還是它?
是沒有可能創造一個範圍,並調用其包含的方法是這樣的:斯威夫特範圍... 12.contains(1)不能援引「包含」與(INT)
1...12.contains(1)
當我創建一個var range = 1...12
並打印它的dynamicType時,我得到一個Swift.Range<Swift.Int>
,所以我猜測不是類型不匹配問題,還是它?
在這種情況下,問題是運營商的是優先級:
(1...12).contains(1) // -> true
(代碼看起來否則曖昧)
發生在括號中的範圍內,它應該工作:
(1...12).contains(1)
另一個很好的方法來檢查:(與模式匹配運算符)
if 2...5 ~= 4 {
// do something
}
這些是括號,而不是括號。 –
感謝您的提示。英語不是我的母語,所以我認爲術語「括號」(沒有任何屬性,如方形,捲曲等)意味着「圓括號」括號。將來我會用括號代替。 –
至少在美國英語中,括號一詞用於「[]」和「{}」(分別用括號和大括號/大括號表示),「()」用作括號。 –