Swift開發體驗/*:創建對象* OC: alloc initWithXXX 方法* Swift: (xxx:)*//*:調用方法* OC: [UIColor redColor];* Swift UIColor.redColor()*//*:枚舉* OC: UIB...
Swift開發體驗
/*:
創建對象
* OC: alloc initWithXXX 方法
* Swift: (xxx:)
*/
/*:
調用方法
* OC: [UIColor redColor];
* Swift UIColor.redColor()
*/
/*:
枚舉
* OC: UIButtonTypeContactAdd
* Swift: UIButtonType.ContactAdd
*/
//[[UIView alloc] init];
//[[UIView alloc] initWithFrame: ];
//let view = UIView()
let view = UIView(frame:CGRect(x: 0, y: 0, width: 100, height: 100))
view.backgroundColor = UIColor.redColor()
let btn = UIButton(type: UIButtonType.ContactAdd)
btn.center = view.center
view.addSubview(btn)
-
註釋
- Swift 的編譯器將會在編譯代碼時自動忽略掉註釋部分
- 單行註釋 //
- 多行註釋 /**/
-
與 C 語言多行註釋不同,Swift 的多行註釋可以嵌套在其它的多行註釋之中嵌套多行註釋
- 註釋嵌套 //**//
常量和變數
常量變數
- let 常量: 常量的值一旦設定就不能改變
- var 變數: 變數的值可以隨意更改
- 常量&變數的使用原則:
- 為保證數據的安全性儘量先用 let,只有需要改變的時候才使用 var
常量定義格式
- 聲明符號 常量名稱: 類型標註
- let number: Int
- 特點: 一旦設定就不能改變
let number: Int = 10
//number = 20
定義變數格式
- 聲明符號 變數名稱: 類型標註
- var number: Int
- 特點: 變數的值可以隨意更改
- 註意: 一般來說你很少需要寫類型標註。如果你在聲明常量或者變數的時候賦了一個初始值,Swift可以推斷出這個常量或者變數的類型
var number2: Int = 10
number2 = 20
類型推斷
- 編譯器可以在編譯代碼的時候自動推斷出表達式的類型。(其它語言是沒有類型推斷)
- 原理很簡單,只要檢查你賦的值即可
- 如果沒有指定表達式的類型, 也沒有賦予初始值, 編譯器會報錯(type annotation missing in pattern)
let number3 = 10
var number4 = 20.1
// 註意點: 如果沒有指定表達式的類型, 也沒有賦予初始值, 編譯器會報錯
var number5: Int
number5 = 88
類型安全
- Swift 是一個類型安全(type safe)的語言, 它會在編譯你的代碼時進行類型檢查(type checks),並把不匹配的類型標記為錯誤。這可以讓你在開發的時候儘早發現並修複錯誤
- swift 對數據類型要求異常嚴格, swift 中任何時候,都不會做
隱式轉換
,如果要對不同類型的數據進行計算,必須顯示類型轉換 註意: - 結合數字類常量和變數不同於結合數字類字面量。字面量8可以直接和字面量3.1415926相加,因為數字字面量本身沒有明確的類型。它們的類型只在編譯器需要求值的時候被推測
- Double和CGFloat也需要轉換
//let number6: Int = 10.1
let number7 = 10
let number8 = 10.1
//let sum = number7 + number8
let sum = Double(number7) + number8
let sum1 = number7 + Int(number8)
// 字面量之間運算可以是不同類型
let sum2 = 10 + 10.1
// CGFloat/Double
let point = CGPoint(x: 10.10, y: 20.20)
let temp = point.x
let sum3 = Double(temp) + number8
常量和變數的命名
- 你可以用任何你喜歡的字元作為常量和變數名,包括 Unicode 字元
- 常量與變數名不能包含數學符號,箭頭,保留的(或者非法的)Unicode 碼位,連線與製表符
- 也不能以數字開頭,但是可以在常量與變數名的其他地方包含數字
- ... 和C和OC一樣
註意:
- 如果你需要使用與Swift保留關鍵字相同的名稱作為常量或者變數名,你可以使用反引號(`)將關鍵字包圍的方式將其作為名字使用。
- 無論如何,你應當避免使用關鍵字作為常量或變數名,除非你別無選擇。
//let