switch語句
/*
1. 值可以是任何類型
2. 作用域僅在case內(nèi)部
3. 不需要break
*/
let name = "老王"
switch name {
case "老王":
let age = 80
print("hi")
case "老李": break
//case里面沒有代碼的時(shí)候负蠕,需要用需要有break
default:
print("other")
}
字符串
與OC對比
OC里面string是NSString
锹引,繼承自NSObject
厂财,是對象摩钙。而swift中的String
是結(jié)構(gòu)體。
支持遍歷
var str: String = "你好世界"
for c in str.characters {
print(c)
}
//consle輸出的結(jié)果為
/*
你
好
世
界
*/
NSString不支持遍歷
字符串的拼接
//字符串的拼接
let name = "老王"
let age = 80
let title = "小黑"
print(name + String(age) + title)
print("\(name)\(age)\(title)")
字符串的格式
swift里沒有類似oc的stringWithFormat
贪薪,但是有其他替代的語法媳禁。
let h = 9
let m = 5
let s = 8
let timeStr = "\(h):\(m):\(s)"http://沒有格式
//輸出為 "9:5:8"
let timeStrWithFormat = String(format: "%02d:%02d:%02d", arguments: [h, m, s])//有格式
//輸出為 "09:05:08"
Range的變化
在swift中,Range
的變化很大画切,如果要用OC中的subStringWithRange(NSMakeRange(range, NSRange)
竣稽,取出string中的某些字,要把String
改成NSString
(str as NSString).substring(with: NSMakeRange(2, 2))
//轉(zhuǎn)換成NSString再使用NSMakeRange方法
str.substring(with: Range<String.Index>)
常量和變量
開發(fā)的時(shí)候霍弹,首選let
毫别,不得不修改的時(shí)候才使用var
循環(huán)
舊的寫法
這種寫法在最新版本的額xcode里面會(huì)報(bào)錯(cuò),并被fix成下面提到的開區(qū)間
的寫法
for var i = 0; i < 10; i++ {
print(i)
}
開區(qū)間
//從0到9
for i in 0 ..< 10 {
print(i)
}
/*
輸出結(jié)果為:
0
1
2
3
4
5
6
7
8
9
*/
閉區(qū)間
//從0到10
for i in 0...10 {
print(i)
}
/*
輸出結(jié)果為:
0
1
2
3
4
5
6
7
8
9
10
*/