終于開始學Swift3了 要堅持下去!!!
Paste_Image.png
變量與常量
let 常量
var 變量
optional 可選項
不同類型之間不可以直接運算
定義可選項"?" 解包"!"
var的可選默認值為nil let沒有默認值
?? 簡單的三目 如果有值使用值 沒有值使用??后面的值 優先級低
if let, if var 連用
switch 不需要break
取消傳統for循環
for in 開閉空間 .xxx() 反轉等
let x : Double = 3;
let y = 3.3;
let we : String = "sdf"
let xx : Optional = 234
let yy : Int? = 20
print(xx!+yy!)
x > 5 ? print("大于10") : print("小余10")
x > 19 ? print("大于10") : ()
let x : Int? = 10;
let y : String? = "老王";
if let xx = x, let yy = y {
print(String(xx)+yy)
}else{
print("no")
}
guard let xxx = x ,let yyy = y else { return }
print(String(xxx)+yyy)
let age :Int = 9;
switch age {
case 8,9:
print("yes")
default:
print("no")
}
for i in 0..<10 {
print(i)
}
for i in 0...9 {
print(i)
}
for i in (0..<10).reversed() {
print(i)
}
字符串處理
//返回指定編碼的對應字節數量
//UTF8 每個漢字是3個字節
print(s.lengthOfBytes(using: .utf8))
//返回字符串長度
print(s.characters.count)
// 值 as 類型 -> 類型轉換
let osStr = s as NSString
print(osStr.length)
//\(變量/常量)
var str : String = "\(s) 這樣?"
let point = CGPoint(x: 100, y: 200)
//format日期
let h = 10;let m = 2;let sss=3;
let dateStr = String(format: "%.2d:%.2d:%.2d", h,m,sss)
let s :String = "第一次感受Swift3.0"
let osStr = s as NSString
let s1 = osStr.substring(with: NSMakeRange(0, 5));
let s2 = s.range(of: "Sw")
guard let ra = s.range(of: "Sw") else {
print("no")
return
}
print(s.substring(with: ra))
數組
let array = ["sf","我們"]
let arr2 = [1,2,3,4]
let pi = CGPoint(x: 100, y: 100)
let arr3 = [pi]
//Swift 中一個累可以沒有任何父類
//Swift 中有一種[AnyObject] ->任意對象
let arr4 = ["sdf",2] as [Any]
print(arr4)
數組遍歷
let array = ["sf","我們","搜索"]
for s in 0..<array.count {
print(array[s])
}
for s in array {
print(s)
}
//元組
for s in array.enumerated() {
print("\(s.offset) with \(s.element)")
}
// n 對應索引下標 s 對應元素
for (n,s) in array.enumerated() {
print("\(n) ns \(s)")
}
//反序
for s in array.reversed() {
print(s)
}
//錯誤的反序 索引和內容不一致
for (i, s) in array.reversed().enumerated() {
print("\(i) \(s)")
}
//正確的反序 先枚舉再反序
for (i, s) in array.enumerated().reversed() {
print("\(i) \(s)")
}