天天看點

003--swift文法基礎(變量和常量)

1、定義變量var \常量let
   常量let  定義之後不能修改


 2、自動推導,變量/常量的類型會根據右側的代碼執行結果,推導對應的類型
    熱鍵:option+click

 3、在swift中對類型要求異常嚴格
   任何不同類型的資料之間,不允許直接運作
   不會做預設的隐式轉換,所有的類型确定,都要由程式員負責(下方解決辦法)

4、swift中,不存在基本資料類型,都是結構體
           
關于var 和 let 的選擇

    不可變的會更安全,開發的時候通常先使用let,在需要變化的時候,再改為var
    Variable 'x' was never mutated; consider changing to 'let' constant
    變量x從來沒有被修改,建議改為`let`

    var x = 20
    let y = 10
    print(x + y)

    修改視圖屬性
    let v = UIView()
    僅僅修改的是v的屬性,并沒有修改v的指針位址
    v.backgroundColor = UIColor.red
           
import UIKit

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
        demo1();


        // 關于var 和 let 的選擇
        // 不可變的會更安全,開發的時候通常先使用let,在需要變化的時候,再改為var
        // Variable 'x' was never mutated; consider changing to 'let' constant
        // 變量x從來沒有被修改,建議改為`let`

        var x =
        let y =
        print(x + y)

        //修改視圖屬性
        let v = UIView()
        //僅僅修改的是v的屬性,并沒有修改v的指針位址
        v.backgroundColor = UIColor.red

    }
    // 1、定義變量var \常量let
    //   常量let  定義之後不能修改

    // 2、自動推導,變量/常量的類型會根據右側的代碼執行結果,推導對應的類型
    //    熱鍵:option+click

    // 3、在swift中對類型要求異常嚴格
    //    任何不同類型的資料之間,不允許直接運作
    //    不會做預設的隐式轉換,所有的類型确定,都要由程式員負責(下方解決辦法)

    // 4、swift中,不存在基本資料類型,都是結構體
    func dome2(){
        //如果需要制定變量/常量的類型,也可以直接使用let x:類型 = 值
        // 提示:在swift中,極少的使用直接制定類型,通常都是自動推導
        let x:Double =
        let y =
        print(x + y)
    }
    func demo1() {
        let x =
        let y =
        //print(x+y)
        //1.将 y 轉換成整數
        //OC中的寫法 (int)y => 類型強轉
        //swift中Int()  `結構體`的構造函數
        print(x + Int(y))

        //2.将x轉換成Double
        print(Double(x) + y)
    }
    func demo() {


        // 整數 Int(OC中 NSInteger 類似)
        var x =
        x =
        // 小數:Double精度更高(OC 中 CGFloat)
        let y =

        let v = UIView()

        print(x)
        print(y)
        print(v)
    }
}