// Swift 沒有 main 函數 沒有佔位符 OC 中的字符串 數組 字典等都要用到 @ 但 Swift 中都不在用 @
// 經常使用的數據類型
let b1:Int = 10
let b2:Double = 1.22
let b3:String = "sdf"
var b4:Character = "a"
// 求字符串的長度
// 與 OC 不一樣 ???
// OC 直接 .count就能夠獲取字符串長度 而 Swift 是先獲取字符串中全部的字符 在獲取個數
var str = "string"
//print(str.characters.count)
// 拼接字符串
// 與 OC 不一樣
// OC 是用 stringWithFormat:拼接 或者 appendingWithString:
// Swift 分如下兩種
// 1> 字符串與字符串拼接
var str1 = "good"
var str2 = "morning"
//print("\(str1)\(str2)") // 或者以下
str1 += str2
//print(str1)
// 2> 字符串與字符拼接
let s:Character = "a"
str.append(s)
//print(str)
// 是否相等 ==
// OC 中 基本數據類型用 == 字符串用 isEqualToString: 若是 if 判斷 if 後面沒有其餘的選擇時 大括號 能夠省略
// Swift 中 不管是字符串仍是基本數據類型都是用 == 其中 if判斷中 if 後面的 小括號 能夠 省略 但 大括號 必須保留
if (str == "good") {
print(str)
}
// 前綴/後綴
str.hasPrefix("st")
str.hasSuffix("ing")
// 大小寫轉換
var str3 = "GOOGLE"
print("轉換成小寫的\(str3.lowercaseString)")
print("轉換成大寫的\(str3.uppercaseString)")
// 字符串支持遍歷
for item in str3.characters {
print(item)
}
// 將 Swift 字符串轉換成 OC 對象
let str4 = str3 as NSString
print(str3)
// 數組
// 建立數組 必定要指定元素的數據類型
var array:[String] = ["1", "2", "3"]
// 添加元素
array.append("4")
// 刪除
array.removeAll() // 移除全部元素 包括數組開闢的空間 array = nil
array.removeAll(keepCapacity: true) // 移除全部元素 但 保留數組開闢的空間 array.count = 0
array.removeAtIndex(2) // 移除對應下標下的元素
array.removeFirst() // 移除第一個元素
array.removeLast() // 移除最後一個元素
// 數組的遍歷
for item in array {
print(item)
}
// 元組遍歷
for (index, value) in array.enumerate() {
print("index=\(index), value=\(value)")
}
print(array.count) // 數組個數
// 合併數組
var arrar1:[String] = ["mi", "33"]
array += arrar1
// 字典
// 建立字典也要指出字典的類型 用[] 沒有 {}
var dic:[String:AnyObject] = ["1": "you", "2": "wo"]
var dic1:[String:AnyObject] = ["2": "f", "3": "sss", "5": "sdf"]
// 增長和更新鍵值對
dic["3"] = "mm" // 若是字典中有這個 key 那就是更新 若是沒有就是 添加
// 刪除鍵值對
dic.removeAll() // 移除全部元素 包括數組開闢的空間 dic = nil
dic.removeAll(keepCapacity: true) // 移除全部元素 但 保留數組開闢的空間 dic.count = 0
dic.removeAtIndex(dic.indexForKey("1")!) // 注意此處的 ! 移除對應下標下的元素
dic.removeValueForKey("1") // 移除對應下標下的元素
// 普通便利
for item in dic.enumerate() {
print(item)
}
// 元組遍歷
for (index,value) in dic.enumerate() {
print("index=\(index), valu=\(value)")
}
print(dic.keys) // 全部 key
print(dic.values) // 全部 value
// 合併兩個字典
for item in dic.keys {
dic1[item] = dic[item]
}
// 可選類型
// 可選類型: 若是一個值有多是空 也有可能有值 那這個值就是一個可選類型 可選類型用 ? 表示
// 可選類型不能直接參與運算 要先強制解包(wrapped) 用!表示
// warning 在對一個可選類型類型進行解包以前必須確認這個可選值不爲 nil
// unexpectedly found nil while unwrapping an Optional value 說明對要對 nil 強制解包
// 在模型裏面全部的基本數據類型不能夠爲可選類型 不然會在字典傳模型的時候找不到 key 解決方法 給可選類型一個默認值 0
var c1:Int? = 1
let c2 = 2
let c3 = c1! + c2
print(c3)
// ?? 空運算標識符
// 做用: 若是可選類型值不爲空 ?? 會自動幫咱們解包再參與運算 若是是可選類型值爲空 就是用 ?? 後面提供的默認值進行運算
var value:Int?
let value1 = (value ?? 5) + 10
print("value1 = \(value1)")
// 枚舉
enum Month:String {
// 第一種方式
case January = "一月"
case February = "二月"
case Match = "三月"
// 第二種方式
// case January, February, Match
}
var month = Month.February
month = .February
print("month=\(month.rawValue)") // 用於獲取 枚舉值對應的 默認值(一月 二月 三月)
print("month=\(month.hashValue)") // 獲取枚舉值對應的 index
// 控制流
// if語句
// Swift 中沒有非0即真的概念
let a = 10
if a > 3 {
print(a)
}
// if let
// if let 先判斷可選類型器是否爲空 不爲空建立一個局部常量來接收此時可選類型的值 在執行代碼塊 不然就不執行代碼塊 至關於 if a == 10 {} else {}
var aa:Int?
if let b = aa {
print(b)
}
// if let where
// 對定義出來的常量在進行一次判斷
if let bb = aa where bb > 9 {
print(bb)
}
// guard 守護
// 是用來判斷可選類型是否有值 沒值就執行 else 相似於 if let
func demo() { // 無參無返函數
var a10:Int? = 11
guard let d = a10 else {
print("nil")
return
}
print(d)
}
demo() // 調用
// switch
// switch 後面的小括號 能夠省略 case 後面不用寫 break 不會形成穿透效果 default 必須添加 並且只能添加在最後 case 後面只有一條語句 {}能夠省略
// switch 不在想 OC 那樣只侷限與整形的選擇 字符串 浮點型 等均可以
// 整形表示
let a1 = 10
switch a1 {
case 2:
print("a = 2")
case 10:
print("a = 10")
default:
print("nil")
}
// 字符串表示
let string = "Beautiful"
switch string {
case "sdb":
print("nil")
case "Beautiful":
print(string)
default:
print("Happyness")
}
// for 循環
// 寫法 1
var i = 0
for i = 0; i < 10; i++ {
print(i)
}
// 寫法 2
for i in 0...10 { // 書寫格式必須這樣寫
print(i)
}
// 寫法 3
for i in 0..<10 { // 書寫格式必須這樣寫
print(i)
}
// while
var j = 10
while i > 1 {
i--
}
// 在 Swift 中沒有do while
數組