标签:
nil
,而一旦为 nil
则不允许参与计算nil
let url = NSURL(string: "http://www.baidu.com")
//: 方法1: 强行解包 - 缺陷,如果 url 为空,运行时会崩溃
let request = NSURLRequest(URL: url!)
//: 方法2: 首先判断 - 代码中仍然需要使用 `!` 强行解包
if url != nil {
let request = NSURLRequest(URL: url!)
}
//: 方法3: 使用 `if let`,这种方式,表明一旦进入 if 分支,u 就不在是可选项
if let u = url where u.host == "www.baidu.com" {
let request = NSURLRequest(URL: u)
}
//: 1> 初学 swift 一不小心就会让 if 的嵌套层次很深,让代码变得很丑陋
if let u = url {
if u.host == "www.baidu.com" {
let request = NSURLRequest(URL: u)
}
}
//: 2> 使用 where 关键字,
if let u = url where u.host == "www.baidu.com" {
let request = NSURLRequest(URL: u)
}
if let
不能与使用 &&
、||
等条件判断where
子句where
子句没有智能提示//: 3> 可以使用 `,` 同时判断多个可选项是否为空
let oName: String? = "张三"
let oNo: Int? = 100
if let name = oName {
if let no = oNo {
print("姓名:" + name + " 学号: " + String(no))
}
}
if let name = oName, let no = oNo {
print("姓名:" + name + " 学号: " + String(no))
}
let oName: String? = "张三"
let oNum: Int? = 18
if var name = oName, num = oNum {
name = "李四"
num = 1
print(name, num)
}
var sum = 0
for var i = 0; i < 10; i++ {
sum += i
}
print(sum)
for-in
,0..<10 表示从0到9sum = 0
for i in 0..<10 {
sum += i
}
print(sum)
sum = 0
for i in 0...10 {
sum += i
}
print(sum)
_
能够匹配任意类型_
表示忽略对应位置的值for _ in 0...10 {
print("hello")
}
在 Swift 中绝大多数的情况下,推荐使用
String
类型
String
和 NSString
之间的无缝转换for s in str.characters {
print(s)
}
// 返回以字节为单位的字符串长度,一个中文占 3 个字节
let len1 = str.lengthOfBytesUsingEncoding(NSUTF8StringEncoding)
// 返回实际字符的个数
let len2 = str.characters.count
// 返回 utf8 编码长度
let len3 = str.utf8.count
\(变量名)
的方式可以快速拼接字符串let str1 = "Hello"
let str2 = "World"
let i = 32
str = "\(i) 个 " + str1 + " " + str2
我和我的小伙伴再也不要考虑
stringWithFormat
了 :
Optional
??
操作符??
操作符用于检测可选项是否为 nil
nil
,使用当前值nil
,使用后面的值替代let str1 = "Hello"
let str2 = "World"
let i: Int? = 32
str = "\(i ?? 0) 个 " + str1 + " " + str2
String(format:...)
的方式let h = 8
let m = 23
let s = 9
let timeString = String(format: "%02d:%02d:%02d", arguments: [h, m, s])
let timeStr = String(format: "%02d:%02d:%02d", h, m, s)
String
和 Range
连用时,语法结构比较复杂NSString
再处理let helloString = "我们一起飞"
(helloString as NSString).substringWithRange(NSMakeRange(2, 3))
let startIndex = helloString.startIndex.advancedBy(0)
let endIndex = helloString.endIndex.advancedBy(-1)
helloString.substringWithRange(startIndex..<endIndex)
标签:
原文地址:http://www.cnblogs.com/like359881584/p/5771386.html