Playground是什么?從Xcode6開始出現(xiàn)(Swift開始出現(xiàn))
翻譯為:操場/游樂場
對于學習Swift基本語法非常方便所見即所得(快速查看結(jié)果)
語法特性發(fā)生改變時,可以快速查看.
Swift最基本的語法變化導入框架 import UIKit
定義標識符時崎弃,必須聲明該標識符是變量還是常量聲明標識符的格式:變量/常量關鍵字 名稱 : 數(shù)據(jù)類型語句結(jié)束時不需要加;如果同一行有多個語句,則依然需要加
但是不建議一行多條語句
Swift中的打印語句:print(打印的內(nèi)容)
- 常量和變量的使用
// 導入頭文件直接導入
import UIKit
let a : Int = 10
// a = 20 錯誤寫法, let 修飾的是常量是不能被修改的
// 通過var 修飾的才可以修改
var b : Int = 10
b = 20
- 常量和變量的使用注意
- 指向?qū)ο蟮牟豢梢栽傩薷?但是可以通過指針獲得對象后, 修改的對象內(nèi)部屬性
// Swift中不再需要 *
var view : UIView = UIView()
view = UIView()
let view1 : UIView = UIView(frame: CGRect(x: 0, y: 0, width: 100, height: 100))
view1.backgroundColor = UIColor.redColor()
// 枚舉類型的用法:類型.枚舉的值
// let : 常量修飾 btn : 名稱 UIButton類型
let btn : UIButton = UIButton(type: UIButtonType.Custom)
btn.backgroundColor = UIColor.blueColor()btn.setTitle("按鈕", forState: UIControlState.Normal)
btn.frame = CGRect(x: 20, y: 20, width: 60, height: 30)
view1.addSubview(btn)
Swift中的類型推導
- Swift是強類型語言
- Swift中任何標示符都有明確的類型
- 如果定義標示符時又直接的進行賦值,那么標示符后面的類型可以省略
- 因為Swift中有類型推導,會自動根據(jù)后面的賦值來決定前面的標示符的數(shù)據(jù)類型.
Swift中的基本運算
在Swift中進行計算必須保持數(shù)據(jù)類型的一致, 不然會出錯.
相同類型才可以進行運算
因為Swift中沒有隱式轉(zhuǎn)換
數(shù)據(jù)類型的轉(zhuǎn)換
Int 類型轉(zhuǎn)換為 Double類型 : Double(標示符)
Double 類型轉(zhuǎn)換為Int類型 : Int(標示符)
邏輯分支
- 與OC的區(qū)別:
- Swift中沒有( )
- Swift中必須明確真假,沒有非0既真的概念
- 必須有明確的BOOL值: false \ true
// 錯誤寫法
let a = 10
if a {
print("a")
}
// 正確寫法
let a = 10
if a > 9 {
print("a")
}
// 這個是可選類型,只有判斷為可選類型后才可以判斷真假
let view : UIView? = UIView()
if view != nil {
view.backgroundColor = UIColor.redColor()
}
guard的使用
- guard是Swift2.0新增的語法,它與if語句非常類似只嚣,它設計的目的是提高程序的可讀性
- guard語句必須帶有else語句澜共,它的語法如下:
當條件表達式為true時候跳過else語句中的內(nèi)容贝次,執(zhí)行語句組內(nèi)容 - 條件表達式為false時候執(zhí)行else語句中的內(nèi)容岖赋,跳轉(zhuǎn)語句一般是return、break英妓、continue和throw
var age = 18
func online(age : Int) -> Void { // func類似C的函數(shù)
guard age >= 18 else {
print("回家去") return
}
print("可以上網(wǎng)")}
online(age)
for循環(huán)的寫法
// 傳統(tǒng)寫法
for var i = 0; i < 10; i++ {
print(i)
}
// 區(qū)間for循環(huán)
for i in 0..<10 {
print(i)
}
// 特殊寫法: 如果在for循環(huán)中不需要用到下標 i
for _ in 0..<10 {
print ("hello")
}
字符串
- 在OC中字符串用NSString,在Swift中字符串類型是String
- OC中字符串@" ", Swift中字符串用 " " 表示
- 使用String的原因
- String 是一個結(jié)構(gòu)體, 性能更高
- NSString 是一個OC對象, 性能略差
- String 支持直接遍歷
- Swift 支持String 和 NSSting 間的無縫轉(zhuǎn)換
// 字符串遍歷
var str = "Hello, Swift"
for c in str.characters {
print(c)
}
// 兩個字符串的拼接
let str1 = "Hello"
let str2 = "World"
let str3 = str1 + str2
// 字符串和其他數(shù)據(jù)類型的拼接
let name = "why"
let age = 18
let info = "my name is \(name), age is \(age)"
// 字符串的格式化比如時間:03:04
let min = 3
let second = 4
let time = String(format: "%02d:%02d", arguments: [min, second])
- 字符串的截取
- Swift中提供了特殊的截取方式該方式非常麻煩
- 簡單的方式是將String轉(zhuǎn)成NSString來使用在標識符后加:as NSString即可
let myStr = "www.520it.com"
var subStr = (myStr as NSString).substringFromIndex(4)
subStr = (myStr as NSString).substringToIndex(3)
subStr = (myStr as NSString).substringWithRange(NSRange(location: 4, length: 5))