在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呢?
其實啊都能知足咱們的需求,那咱們到底應該如何選擇?
例如:能夠將圓周率π定義爲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;
==================================================
+ 加 求和,還可用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 //正確,小數被截掉
==================================================