Swift

 

Swift 2.0以後增長defer、guard、repeat、catch、rethrows、hrow、throws和try關鍵字,其中repeat關鍵字替代do - while循環中的do,即中repeat - while循環。而do關鍵字用於錯誤處理。catch、rethrows、throw、throws和try是錯誤處理關鍵字。數據庫

錯誤處理是Swift 2.0以後增長新內容。安全

 

defer數據結構

guard函數

repeatspa

catch.net

rethrowsci

hrow開發

throws字符串

tryget

======================================================

什麼是標識符呢?

標識符就是給變量、常量、方法、函數、枚舉、結構體、類、協議等由開發人員指定的名字。

其實,構成標識符的字母是有必定規範的,Swift中命名規則是:

  • 區分大小寫,Myname與myname是兩個不一樣的標識符;

  • 標識符首字符能夠如下劃線(_)或者字母開始,但不能是數字;

  • 標識符中其餘字符能夠是下劃線(_)、字母或數字。

例如: userName、User_Name、_sys_val、身高等爲合法的標識符,而2mail、room#和class爲非法的標識符。

 ==================================================

什麼是關鍵字呢?

關鍵字是相似於標識符的保留字符序列,由語言自己定義好的,不能挪做他用,除非用重音符號(`)將其括起來。

Swift語言常見的關鍵字有如下4種。

  • 與聲明有關的關鍵字:class、deinit、enum等。

  • 與語句有關的關鍵字:break、case、continue等。

  • 表達式和類型關鍵字:as、catch、dynamicType、false等。

  • 在特定上下文中使用的關鍵字:associativity、convenience、dynamic等。

Swift中關鍵字是區分大小寫的,因此class和Class是不一樣的,那麼Class不是Swift的關鍵字。

 

===============================================

使用var仍是let?

在咱們開發過程當中啊何時定義關鍵字爲var,仍是定義爲let呢?

其實啊都能知足咱們的需求,那咱們到底應該如何選擇?

例如:能夠將圓周率π定義爲let或var。

let π = 3.14159

var π = 3.14159

上面代碼編譯不會報錯。可是從業務邏輯層面講,π應該定義爲常量(let)的,由於一方面常量(let)不能修改,另外在程序中使用常量(let)能夠提升程序的可讀性。

有人說:原則上優先使用let,它有不少好處,能夠防止程序運行過程當中沒必要要的修改、提升程序的可讀性。特別是引用數據類型聲明時候常常採用let聲明,雖然在業務層面上並非一個常量,而是防止程序運行過程當中錯誤地修改它引用。

 

常量是標識符的前面加上關鍵字let。常量其值在使用過程當中不會發生變化的量,下面是聲明常量:

let _Hello = "Hello"

注意哦常量只能在初始化的時候被賦值,若是再次給_Hello賦值,

好比: _Hello = "Hello, World"

程序會報錯的

變量來了

 變量是在標識符的前面加上關鍵字var,聲明變量啦:

var scoreForStudent = 0.0

聲明Double類型scoreForStudent變量,而且初始化爲0.0。

若是在一個語句中聲明和初始化了多個變量,那麼全部的變量默認具備相同的數據類型(待驗證):

var x = 10, y = 20

在多個變量的聲明中,也能指定不一樣的數據類型哦:

var x = 10, y = true

其中x爲整型,y爲布爾型。

==================================================

在Swift中,表達式有3種形式。

l  不指定數據類型

var a1 = 10

l  指定數據類型

var a1:Int  = 10

l  使用分號

var a1:Int = 10; vara2:Int = 20

在Swift語言中,一條語句結束後能夠不加分號也能夠添加分號,可是有一種狀況必需要用分號,那就是多條語句寫在一行的時候,須要經過分號來區別語句。

例如:

var a1:Int = 10; vara2:Int = 20;

==================================================

 在Swift語言中主要的運算符包括算術、關係、邏輯、位運算符等。
「 +、-、*、/ 」是算術運算符中的二元運算符,一元運算符是是-、++和--。

  •   二元運算符:

         +         加      求和,還可用String類型,進行字符串鏈接操做
         -   減      求差
         *   乘      求積
         /   除      求商
         % 取餘   求餘數

  •  一元運算符:

        -    取反符號      取反運算
       ++     自加一  先取值再加一,或先加一再取值
        --       自減一  先取值再減一,或先減一再取值

 

除了一些經常使用的運算符,還有一些其餘的:

      引用號(.):實例調用屬性、方法等操做符。

      問號(?):用來聲明可選類型。

      感嘆號(!):對可選類型值進行強制拆封。

      箭頭(->):說明函數或方法返回值類型。

      冒號運算符(:):用於字典集合分割「鍵值」對。

==================================================

Swift中數據類型有那些呢?整型、浮點型、布爾型、字符、字符串這些類型是必定有的,其中集合、枚舉、結構體、類也是Swift中的數據類型。元組是Swift中特有的。

其餘那些類型咱們可能多少知道些或是據說過。元組是在Swift中有的,它是什麼呢?

它是一種數據結構,在數學中應用普遍。在計算機科學中,元組是關係數據庫中的基本概念,元組表中的一條記錄,每列就是一個字段。所以在二維表裏,元組也稱爲記錄。

如今使用Swift語法表示Student元組就是:

第一種寫法

 ("1001", "張三", 30, 90)                     

第二種寫法

 (id:"1001", name:"張三", english_score:30, chinese_score:90)

==================================================

  在C、Objective-C和Java等其餘語言中,整型之間有兩種轉換方法:
    從小範圍數到大範圍數轉換是自動的;
    從大範圍數到小範圍數須要強制類型轉換,有可能形成數據精度的丟失。
    而在Swift中這兩種方法是行不通的,須要經過一些函數進行顯式地轉換,代碼以下:
    let historyScore:UInt8 = 90
    let englishScore:UInt16 = 130
    let totalScore = historyScore + englishScore  //錯誤
    程序就會有編譯錯誤,緣由是historyScore是UInt8類型,而englishScore是UInt16類型,它們之間不能轉換。
兩種轉換方法:
    一種是把UInt8的historyScore轉換爲UInt16類型。因爲是從小範圍數轉換爲大範圍數,這種轉換是安全的。
代碼:
let totalScore = UInt16(historyScore) + englishScore   //是正確的轉換方法。
    另一種是把UInt16的englishScore轉換爲UInt8類型。因爲是從大範圍數轉換爲小範圍數,這種轉換是不安全的,若是轉換的數比較大可能會形成精度的丟失。
代碼:
let totalScore = historyScore + UInt8(englishScore)  //是正確的轉換方法。
本例中englishScore的值是130,這個轉換是成功的,若是把這個數修改成1300,雖然程序編譯沒有問題,可是會在控制檯中輸出異常信息。
整型與浮點型之間的轉換
    整型與浮點型之間的轉換與整型之間的轉換相似:
        let historyScore:Float = 90.6   
        let englishScore:UInt16 = 130 
        let totalScore = historyScore + englishScore  //錯誤  
        let totalScore = historyScore + Float(englishScore)  //正確,安全
        let totalScore = UInt16(historyScore) + englishScore  //正確,小數被截掉 

 

==================================================

相關文章
相關標籤/搜索