<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                相關文章? [Swift快速入門(一)第一個Swift程序](http://blog.csdn.net/itachi85/article/details/50531727)? [Swift快速入門(二)基本數據類型](http://blog.csdn.net/itachi85/article/details/50596987) **1.賦值運算符** 賦值運算(a = b),表示用b的值來初始化或更新a的值: ~~~ var b = 10 var a = 5 a = b // a 現在等于 10 ~~~ Swift 的賦值語句沒有返回值,所以以下代碼是錯誤的: ~~~ // 此句錯誤, 因為 x = y 并不返回任何值 if x = y { } ~~~ **2.算術運算符** Swift 讓所有數值類型都支持了基本的四則運算:? 加法(+)? 減法(-)? 乘法(*)? 除法(/) ~~~ var a=1 + 2 // 等于 3 var b=5 - 3 // 等于 2 var c=2 * 3 // 等于 6 var d=10.0 / 2.5 // 等于 4.0 ~~~ **3.溢出運算符** Swift不允許整型變量或者常量被賦值一個超出其表數范圍的數值,如果試圖這么干,則會出現運行時錯誤: ~~~ var a:Int16=32767 //a+1的值超出了Int16的表數范圍,則下面的代碼會導致錯誤 a=a+1 ~~~ 如果希望數據溢出時Swift程序只是對一出的數據位進行截斷而不是導致錯誤,則可以使用以&開頭的溢出運算符: * 溢出加法 &+ * 溢出減法 &- * 溢出乘法 &* * 溢出除法 &/ * 溢出求余 &% ####值的上溢 下面例子使用了溢出加法&+來處理無符號整數的上溢出: ~~~ // max等于UInt8的最大整數 255 var max = UInt8.max // 這時候 max 等于 0 max= max&+ 1 ~~~ max用Int8所能承載的最大值255(二進制11111111),然后用&+加1。然后UInt8就無法表達這個新值的二進制了,也就導致了這個新值上溢出了,大家可以看下圖。溢出后,新值在UInt8的承載范圍內的那部分是00000000,也就是0。 ![](https://box.kancloud.cn/2016-03-09_56dfc829ad36f.jpg) ####值的下溢 數值也有可能因為太小而越界: ~~~ // min等于UInt8的最小值0 var min= UInt8.min // 此時 min等于 255 min= min&- 1 ~~~ UInt8的最小值是0(二進制為00000000)。使用&-進行溢出減1,就會得到二進制的11111111即十進制的255。 ![](https://box.kancloud.cn/2016-03-09_56dfc829bf300.jpg) ####除零溢出 整數和整數在進行除法或者求余運算時,如果被除數為0,程序將會出錯: ~~~ let x=10 let y = x / 0 //出錯 ~~~ 改為可溢出運算符: ~~~ let x=10 let y = x &/ 0 //結果為0 ~~~ **4.位運算符** 假設變量A=60,變量B=13,那么位運算的結果如下: ~~~ A = 0011 1100 B = 0000 1101 A & B = 0000 1100 //結果為12 A|B = 0011 1101 //結果為61 A^B = 0011 0001 //結果為49 ~A = 1100 0011 //結果為-61 ~~~ ![](https://box.kancloud.cn/2016-03-09_56dfc829d4020.jpg) **5.范圍運算符** Swift包括兩個范圍的運算符,用于表達值的范圍。 ####閉范圍運算符 閉范圍運算符a…b定義一個包含從a到b(包括a和b)的所有值的范圍,其中a不能大于b。 閉范圍運算符在迭代一個范圍的所有值時是非常有用的,如在for-in循環中: ~~~ //結果為1到5 for num in 1...5 { print(num) } ~~~ ####半開范圍運算符 半開范圍運算符`a..<b`用于定義一個從a到b(包括a邊界不包括b邊界),其中a不能大于b。 ~~~ //結果為1到4 for num in 1..<5 { print(num) } ~~~ **6.比較運算符** * 等于(a == b) * 不等于(a!= b) * 大于(a > b) * 小于(a < b) * 大于等于(a >= b) * 小于等于(a <= b) 每個比較運算都返回了一個標識表達式是否成立的布爾值: ~~~ 1 == 1 // true 2 != 1 // true 2 > 1 // true 1 < 2 // true 1 >= 1 // true 2 <= 1 // false ~~~ **7.邏輯運算符** 邏輯運算的操作對象是邏輯布爾值。Swift 支持基于 C 語言的三個標準邏輯運算。 * 邏輯非運算(!a)對一個布爾值取反,使得true變false,false變true。 * 邏輯與(a && b)表達了只有a和b的值都為true時,整個表達式的值才會是true。 * 邏輯或(a || b)它表示了兩個邏輯表達式的其中一個為true,整個表達式就為true。 **8.三目運算符** 三目運算符的格式為: ~~~ expression? if-true-statement: if-false-statement ~~~ 如果邏輯表達式expression為真則執行并返回第二個操作數的值; 如果不為真則執行并返回第三個操作數的值。 ~~~ var a = 5 var b = 3 var str = a > b ? "a大于b" : "a不大于b" // 輸出"a大于b" print(str) ~~~ **9.nil合并運算符** nil合并運算符:??,它的格式如下: ~~~ a ?? b ~~~ 簡單來說就是如果a為nil,則程序會返回b的值 ~~~ let dfstr="九陰真經" var str:String? // 輸出"九陰真經" print(str ?? dfstr) ~~~
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看