swift5.0 基礎(一)數組 字典 字符串等

swift5.0 基礎(二)

隱式轉換

只有oc有 swift並不支持
swift 類型推導 但不支持隱式轉換 只能同類型運算
錯誤示範:

let a = 10
let b = 4.5
let result = a + b

將a轉換浮點型
let a = 10
let b = 4.5
let tempA = Double(a)
let result = tempA + b

三目運算符

和oc 是一樣的
let a = 100
let b = 101
let result = a > b ? a : b

swift 特有2.0以後纔有 guard 和if相似 提高可讀性

guard 條件表達式 else {
//條件語句
break
}
語句組

當條件表達式爲true時跳過else,執行語句組
當條件表達式爲false時執行else,跳轉語句一般爲return、break、continue、throw
當多種條件嵌套判斷時 guard可讀性相對高

例如:上火車的條件
if 有票 {
    if 有身份證 {
        上車
    } else {
        拿身份證
    }
} else {
    買票
}

guard 有票 else {
    買票
}
guard 有身份證 else {
    拿身份證
}

switch

let sex = 1

switch sex {
case 1:
    print("男")
default:
    print("女")
}

補充:
1.case穿透 fallthrough
2.case後面可以判斷多個條件以“,”分割

switch sex {
case 0, 1:
    print("正常")
default:
    print("其他 ")
}

3.可以判斷字符串 oc不支持

let a = 10
let b = 20
let opration = "+"

switch opration {
case "+"
 	result = a + b
 case "-"
 	result = a - b
 default
 	print("非法操作")
}

4.可以判斷區間 oc不支持
閉區間 0…10 開區間0…<10

ps:標識符不需要使用,可以使用_來代替
while後面的()可以省略
while後面的判斷沒有非0即真

字符串

oc中NSString在Swift是String
oc中繼承NSObject
Swift String是一個結構體,性能更高,支持直接遍歷 String和NSString之間無縫轉換

定義字符串
let str = "hello"
遍歷
for c in str.chatacters {
	print(c)
}

字符串拼接
let str1 = "abc"
let str2 = "def"
let str3 = str1 + str2

字符串和其他標識符之間拼接
let name = "tom"
let age = 12
let height = 1.78
let info = "name is \(name)  age is \ (age) height is \(height)"

拼接字符串 格式化
 let min = 2
let sec = 12
String(format:"%02d:%02d", arguments: [min,sec]) //02:12


字符串截取
let url = "www.bai.com"
//將string轉換NSString (string as nsstring)
let header = (url as NSString).substring(to: 3)
let middele = (url as NSString).substring(with: NSMakeRange(4, 3))
let end = (url as NSString).substring(from: 7)

數組

不可變數組 
let array = ["a","b","c"]
可變數組
var  arryaM = Array<String>() //少
var  arrayM = [String]() //等同上面


//增
arrayM.append("d")
arrayM.append("e")
arrayM.append("l")

//刪
arrayM.remove(at: 0)

//改
arrayM[0] = "f"

//取
arrayM[0]


//遍歷
for i in 0..<arrayM.count {
    print(arrayM[i])
}

for name in arrayM {
    print(name)
}

//遍歷前兩位
for i  in 0..<2 {
    print(arrayM[i])
}

for namw in arrayM[0..<2] {
    print(namw)
}

數組的合併
let resultArray = arrayA + arryB
相通類型的數組纔可以合併,不同類型不能相加合併

字典

Dictionary
不可變
let dictory = ["name":"lili", "age":20, "height":1.88] as [String : Any]
可變
var dicM = [String : AnyObject]() //AnyObject指定類型 NSObject 一般創建對象
/可變字典基本操作
//添加元素
dicM["name"] = "A" as AnyObject
dicM["age"] = 19 as AnyObject
//刪除元素
dicM.removeValue(forKey: "age")
//修改元素
dicM["name"] = "B" as AnyObject  //如果有這個key 直接修改value  沒有添加
//獲取某一個元素
dicM["name"]
//遍歷字典
for key in dicM.keys {
    print(key)
}
for (key,value) in dicM {
    print("key is \(key)  value is \(value)")
}
//合併字典
let dic1 = ["name":"YY", "age":"19"] as [String : Any]
var dic2 = ["height":"12"]
for (key,value) in dic1 {
    dic2[key] = (value as! String)
}

元組

swift持有 oc並沒有相關類型
元組是一種數據結構 類似於數組或字典
可用於定義一組數據
組成元組類型的數據稱爲”元素“
上圖吧更直觀

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章