swift -- 基礎

swift -- 基礎 

1.常量和變量swift

常量: let數組

變量: var 安全

2.聲明常量和變量spa

常量的聲明: let3d

let  a = 1         //末尾能夠不加分號,等號兩邊的空格必須對應(同時有/沒有)調試

變量的聲明: var 對象

var b = 2字符串

b = 3    //更改值string

3.類型的標註io

var c : Int = 4

var d : Double = 3.1415926

var f  : Character = "a"  //單個字符 也用雙引號 ""

var g : String = "asdf"     //不一樣於OC ,不在須要@ 

4.命名

//同OC:不能以數字開頭,不能使用特殊符號,不能使用關鍵字

let abc = 2

let 🐱 = 3     

let 中國 = 4   //可使用中文

 5.輸出

print(abc,中國)   //直接輸出變量/常量名,不須要@ 和雙引號""

拼接格式: "反斜線+ 括號"  \( )

print ("中國是:\(中國)")   

6.註釋方式

同OC

7.分號

//swift中,當一行上只有一條代碼時:分號;能夠寫,也能夠不寫

//當一行上有多條代碼:分號必須寫

var g = 5; var h = 6

 

//8.整數及 浮點數

//整數

let i : Int = 10

//浮點數

let j : Float = 6.77

let k : Double = 9.88

//9.類型安全及類型判斷

//swift中自動判斷數據類型,不會將一個錯誤的類型傳給咱們使用

var i = 7                         //默認是int

var pi = 3.144444444444 //默認是double

var q = "u"                      //默認是string

//let ss = i * 3.14  會報錯,連個不一樣類型的操做,不能夠

//10.數據類型轉換(整數與浮點數的轉換/字符串與整數的轉換)

//整數與浮點

//將類型寫在前面,將想要轉換的變量用小括號括起來

var w = Double(i)

var ff = Double(i) * 3.14   //只有相同的類型,才能一塊兒操做

 var piInt = Int(pi)

//字符串與整數的轉換:要求作到有意義的轉換

//let str1 = Int("asdfasdf")  //無心義

let str1 = Int("123456")

11.類型別名

typelias char = Character   //新名爲char

var ch1 : char = "a"

12.布爾類型  BOOL (true false)

var bool : BOOL = true

13.元祖(不一樣於數組,元祖類型能夠不一樣,元素個數最好不要大於7 )

聲明元祖

方式一:

let yuanzu = (404,"NotFound")

方式二: 

let (a,b) = (123,"abc")

14.可選類型  ?

//在聲明可選類型時,將問號? 放到類型的後面,則將變量設置成可選類型. 可選類型的變量默認值爲nil(只有可選類型的變量才能爲nil)

var optional : Int ?  // ? 表明可選的,能夠不賦值

var optional : Int ? = 10    //賦值

15.強制解析

//將一個可選類型的變量,轉換成通常類型的變量,才能使用:取值的時候,在變量後面加上感嘆號!

print(optional ! )

16.可選綁定

// let  名 = 以前的一個可選類型的變量

if let x = optional{

print(x)

}else{

print("空")

}

17.隱式解析 可選類型

//將一個可選類型的對象,變爲一個能夠進行自動解析的可選類型,其實就是將 ! 在聲明時候放到類型的後面,而不是在取值的時候放到對象的後面

// ? 能夠爲nil

// ! 必須有值,不能爲nil

var int12 : Int! = 12

print(int12) //取值的時候就不須要加 !

 

//18.使用斷言進行調試 assert

//斷言,只是作輔助調試使用,沒有實際意義

//當條件成立,代碼繼續向下執行,不影響總體工程;條件不成立,運行時會崩潰到這裏

var int13 : Int = 13

assert(int13 < 100) //該條件成立,則會繼續向下執行

print("adfasdf")

 

19.運算符

1.賦值運算符

2.算術運算符

//取餘運算可有對小數取餘

let yushu = 5.5%2.5

 

3.組合賦值運算符 += -=

4.比較運算符  < > >= <=

5.三目運算符  條件?答案一:答案二

6.空合運算符  可選對象一??可選對象二

當可選對象一 爲nil時,選擇可選對象二使用 ,若是可選對象一有值,使用可選對象一

var kong1 : Int?

var kong2 : Int? = 6

let kong3 = kong1 ?? kong2

print(kong3)

 7.區間運算符  ...三個點

1...5    //表明1,2,3,4,5

8.半開區間運算符  ..<

1..<5   //表明1,2,3,4  不包含5

 

//9.邏輯運算符  &&  ||  !

 

//swift3.0 補充**************************************************8

//1.可選項爲空 的判斷解決

//每次解析前用 if 或者用 ??(三目運算) 判斷,防止崩潰

    func demo(x:Int?,y:Int?)  {

//        let x:Int? = 10;

//        let y:Int? = 200

        //強制解包有風險

        //1.判斷

        if x != nil && y != nil {

            print(x! + y!)

        }else{

            

        }

        

        //2.  ??  至關於一個簡單的三目

        print((x ?? 0) + (y ?? 0))

 

    }

//使用 ! 強制解析, 有風險,若是爲空,則崩潰

//有如下兩種方式:(不須要強制解析) 

一. if let/var 連用,判斷對象是否爲nil,不須要強制解析

 func demo2() {

        let oName:String? = "laowang";

        let oAge:Int? = 11

        if let name = oName,let age = oAge {

            print(name + String(age))

        }

        

        

        

    }

二,guard ler/var  (if let 相反)

//guard 守衛(必定有值,沒有值返回)

    func demo3()  {

        let oName:String? = "laowang";

        let oAge:Int? = 11

        

        guard let name = oName, let age = oAge else{

            print("nil")

            return;

        }

        

        //代碼若執行到這裏,必定有值,前面guard 已經作了判斷

        print(name + String(age))

    }

相關文章
相關標籤/搜索