swift3.0基礎語法(2)

1.Hello Wordhtml

2.基礎語法swift

3.構造器、析構方法數組

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

 

運算符

&:按位與
|:按位或 ^:按位異或 ~:取反 <<:左移 >>:右移
&+:溢出加法
&-:溢出減法
&*:溢出乘法
<:小於
<=:小等於
>:大於
>=:大等於
==:等於
!=:不等於
&&:邏輯與
||:邏輯或
!:邏輯非
*=:乘後賦值
/=:除後賦值
%=:取餘後賦值
+=:加後賦值
-=:減後賦值
<<=:左位移後賦值
>>=:右位移後賦值
&=:按位與後賦值
^=:按位異或後賦值
|=:按位或後賦值
??:空和運算
?::三目運算

 數據類型  

1.數組

let/var intArray:[Int] = [];

2.字典

var/let dic = [key:value,key1:value1,key2:value2...];

3.集合

let/var letters:Set<Character> = ["A","B","C"];

注意:類型聲明時,其可變或不可變使用var和let進行區分。使用let聲明爲不可變集合,其長度是不能被改變的,在字典中,不可變意味着不能替換已經存在的鍵的值,但和數組不可變有些不一樣,字典能夠修改其值,數組值不可修改。設計

流程控制

1.if...else if...else...

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"); }

2.switch

var a:Int = 20;
switch (a){ case 5: print("a==5"); case 20: print("a==20"); default: print("前面條件都不符合"); }

3.for...in...

var a = [1,2,3,4,5...];
for x in a{ print("\(x)"); }

4.repeat while...

repeat{
    a/=10; print("a is \(a)"); } while a!=0

 函數和閉包

1.函數

//若想調用有參函數,想將參數名省略 能夠在定義參數時前面加上"_"
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...)->返回值類型{
//函數體
}

 2.閉包

var/let v1 = {(參數1:參數類型,參數2:參數類型...)->返回值 in
    return 返回值類型參數;
}
var/let v1 = { //$0,$1,$2...來表示參數 省略 //N個參數的操做 }

下標腳本

subscript(變量:類型)->返回值類型{
    return 返回值; }

下標腳本通常應用於一些功能性的輔助,如方法下標 方法名(參數)[0]  這樣的靈活性調用。code

類型檢查 

1.is

實例 is 子類型

is關鍵字能夠用來檢查一個實例/對象的所屬類型。htm

"i am superman" is String //true

2.as/as?

實例 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開始依次遞增,如第一個指定值 以後的沒有指定,則以第一個值開始,依次遞增。

相關文章
相關標籤/搜索