1.Hello Wordhtml
2.基礎語法swift
4.擴展、協議閉包
var aaa = 0;//聲明變量aaa 首次賦值時自動解析爲Int類型 var aaa:Int = 0;//聲明Int類型變量aaa let aaa = 0;//聲明常量aaa 首次賦值時自動解析爲Int類型,常量值不可被修改 let aaa:Int = 0;//聲明Int類型常量aaa ,常量值不可被修改
在swift中 除了簡單的數據類型外,還有高級的數據類型(類,函數,結構,元組等等),其中比較有趣兒的是元組類型,由於其在代碼的可讀性與自由度上都很溫馨,下面進行簡單的元組數據聲明。函數
/*
*聲明元組變量/常量
*/
var/let aaa = (值0,值1,值2,值3...);
aaa.0;//值0
aaa.1;//值1
aaa.2;//值2
var/let (a,b,c,d...) = (值0,值1,值2,值3...);//一一對應
a;//值0
b;//值1
c;//值2
類型別名就是爲了現有類型定義的替代名稱。spa
typealias 類型別名 = 數據類型名稱
typealias myInt = int;//聲明myInt 賦值爲int類型 var maxInt = myInt.max;//聲明變量maxInt 和int.max等價 maxInt;// int.max
&:按位與
|:按位或 ^:按位異或 ~:取反 <<:左移 >>:右移
&+:溢出加法
&-:溢出減法
&*:溢出乘法
<:小於
<=:小等於
>:大於
>=:大等於
==:等於
!=:不等於
&&:邏輯與
||:邏輯或
!:邏輯非
*=:乘後賦值
/=:除後賦值
%=:取餘後賦值
+=:加後賦值
-=:減後賦值
<<=:左位移後賦值
>>=:右位移後賦值
&=:按位與後賦值
^=:按位異或後賦值
|=:按位或後賦值
??:空和運算
?::三目運算
let/var intArray:[Int] = [];
var/let dic = [key:value,key1:value1,key2:value2...];
let/var letters:Set<Character> = ["A","B","C"];
注意:類型聲明時,其可變或不可變使用var和let進行區分。使用let聲明爲不可變集合,其長度是不能被改變的,在字典中,不可變意味着不能替換已經存在的鍵的值,但和數組不可變有些不一樣,字典能夠修改其值,數組值不可修改。設計
var a:Int = 0;
var b:Int = 1; if a==b{ print("a和b相同"); }else if b>a { print("b大於a"); }else{ print("b小於a"); }
var a:Int = 20;
switch (a){ case 5: print("a==5"); case 20: print("a==20"); default: print("前面條件都不符合"); }
var a = [1,2,3,4,5...];
for x in a{ print("\(x)"); }
repeat{
a/=10; print("a is \(a)"); } while a!=0
//若想調用有參函數,想將參數名省略 能夠在定義參數時前面加上"_"
func 函數名(_參數名1:數據類型 = 默認值1,參數名2:參數類型 = 默認值2...)->返回值類型/(返回值1:返回值類型1,返回值2:返回值類型2...){
//函數體
return 返回值類型參數/(返回值類型1參數,返回值類型2參數...) } //可變參數函數 func 函數名1(numbers:Int...)->返回值類型{ //函數體 } //可變參數調用 函數名1(1,2,3,4,5,6); //輸入輸出參數 var a:Int = 2; func changeA(lastA:inout Int){ lastA = 4; } print("\(a)"); //a = 2 changA(lastA:&a); print("\(a)"); //a = 4 //方法做爲參數或返回值 func 函數名(參數名:(參數類型1,參數類型2...)->返回值類型)->(參數類型1,參數類型2...)->返回值類型{
//函數體
}
var/let v1 = {(參數1:參數類型,參數2:參數類型...)->返回值 in
return 返回值類型參數;
}
var/let v1 = { //$0,$1,$2...來表示參數 省略 //N個參數的操做 }
subscript(變量:類型)->返回值類型{
return 返回值; }
下標腳本通常應用於一些功能性的輔助,如方法下標 方法名(參數)[0] 這樣的靈活性調用。code
實例 is 子類型
is關鍵字能夠用來檢查一個實例/對象的所屬類型。htm
"i am superman" is String //true
實例 as 類型
as/as? 就是用來強制轉換形式的關鍵字,當轉換必定成功時才能夠使用強制轉換形式的檢查。對象
var lib = ["123",12];
for l in lib{ var a:Int = l as Int; }
enum 枚舉名稱:枚舉類型{
case 變量 = 值;
//枚舉屬性
var reNum:Int{
return 10;
}
static var reNum1:Int{
return 100;
}
func 方法名(參數)->返回值類型{
self;//self爲當前枚舉中的某一成員對象
return 返回值;
}
//.... }
枚舉名稱.變量.rawValue;//訪問變量原始值
枚舉名稱.變量.reNum; //10
枚舉名稱.reNum1;//100
枚舉名稱.方法名();//執行 方法名 方法
枚舉類型在程序的諸多設計中存在關鍵的邏輯做用,能夠讓代碼更加的符合面向對象規則,是一種邏輯上理解的應用,但本人以爲,若是會用的會以爲枚舉的重要及溫馨,若是不會用的 程序依然會跑,但其設計和不少方面的邏輯靈活都不如前者。
枚舉間可進行靈活的嵌套,如數組。
注: 當枚舉類型爲Int時,如未指定變量值,則第一個以0開始依次遞增,如第一個指定值 以後的沒有指定,則以第一個值開始,依次遞增。