基本運算符中Swift和Java的比較

1. 在Swift和Java基本運算符語法中,賦值運算符、算術運算符、求餘運算符、自增和自減運算、一元負號運算符、一元正號運算符、邏輯運算、比較運算符、三目運算符(Ternary Conditional Operator)等這些運算符用法大同小異,接近相同,就不在分析了,下面對一些Swift中特有的語法進行分析。數組

2. 空合運算符spa

空合運算符(Nil Coalescing Operator):空合運算符(a ?? b)將對可選類型a進行空判斷,若是a包含一個值就進行解封,不然就返回一個默認值b.這個運算符有兩個條件:code

  • 表達式a必須是Optional類型
  • 默認值b的類型必需要和a存儲值的類型保持一致

下文例子採用空合併運算符,實現了在默認顏色名和可選自定義顏色名之間抉擇,代碼以下:blog

let defaultColorName = "red"
var userDefinedColorName:String?   //默認值爲nil
var colorNameToUse = userDefinedColorName ?? defaultColorName
//userDefinedColorName的值爲空 ,因此colorNameToUse的值爲`red`

userDefinedColorName變量被定義爲一個可選字符串類型,默認值爲nil。因爲userDefinedColorName是一個可選類型,咱們能夠使用空合運算符去判斷其值。在上一個例子中,經過空合運算符爲一個名爲colorNameToUse的變量賦予一個字符串類型初始值。 因爲userDefinedColorName值爲空,所以表達式userDefinedColorName ?? defaultColorName返回默認值,即redci

另外一種狀況,分配一個非空值(non-nil)給 userDefinedColorName,再次執行空合運算,運算結果爲封包在userDefaultColorName中的值,而非默認值,代碼以下:字符串

userDefinedColorName = "green"
colorNameToUse = userDefinedColorName ?? defaultColorName
//userDefinedColorName非空,所以colorNameToUsede的值爲綠色

3. 區間運算符it

區間運算符:Swift 提供了兩個方便表達一個區間的值的運算符。io

閉區間運算符:閉區間運算符(a...b)定義一個包含從ab(包括ab)的全部值的區間,b必須大於a。 ‌ 閉區間運算符在迭代一個區間的全部值時是很是有用的,如在for-in循環中,代碼以下:class

 for i in 1...5{
            print("i = \(i) * 5 = \(i * 5)")
        }
// i = 1 * 5 = 5
// i = 2 * 5 = 10
// i = 3 * 5 = 15
// i = 4 * 5 = 20
// i = 5 * 5 = 25

半開區間運算符:半開區間(a..<b)定義一個從ab但不包括b的區間。 之因此稱爲半開區間,是由於該區間包含第一個值而不包括最後的值。半開區間的實用性在於當你使用一個0始的列表(如數組)時,很是方便地從0數到列表的長度。代碼以下:變量

var names :[String] = ["Anna", "Alex", "Brian", "Jack"]
        let count = names.count
        for i in 0..<count{
            print("第\(i)個名字叫\(names[i])")
        }
// 第 1 我的叫 Anna
// 第 2 我的叫 Alex
// 第 3 我的叫 Brian
// 第 4 我的叫 Jack
相關文章
相關標籤/搜索