1.常量和变量
由于swift中特性的类型推动,不用特意给变量确定类型:
var 定义变量
let 定义常量(不被修改)
2.String类型
对于String类型,开发者团队最重要的一个设计目标就是尽可能保持这个类型在Unicode上的语意正确.即String已经彻底不再是一个集合类型,而是一个提供了从多个维度展现一个Unicode视图的类型.你可以得到它的多个Characters,可以看到它的UTF-8/UTF-16/Unicode scalar值等.
彻底忘了String是一个字符数组这样的事情吧!让自己用全新的方式去理解现如今我们需要处理的字符.
如下为String的一些基本操作:
let cafe = "Caf\u{00e9}"
cafe.characters.count //获取字符的个数
cafee.characters.startIndex //获取字符串开始的索引
cafee.characters.endIndex //获取字符串的结束索引
let index = cafee.index(cafee.characters.startIndex, offsetBy: 3)
cafee[index] //获取当前索引的字符串
//获取相应范围内的字符串
let beg = cafee.startIndex
let end = cafee.index(beg, offsetBy: 3)
cafee[beg ..< end]
//获取前缀
String(cafee.characters.prefix(3))
var mixStr = "swift很好玩"
//字符串的遍历
for (index, value) in mixStr.characters.enumerated() {
print("\(index) \(value)")
}
for values in mixStr.characters {
print("\(values)")
}
//字符串的插入
if let index = mixStr.characters.index(of: "很") {
mixStr.insert(contentsOf: " 3.0".characters, at: index)
}
//字符串的替换
if let cnIndex = mixStr.characters.index(of: "很") {
mixStr.replaceSubrange(cnIndex ..< mixStr.endIndex, with: " is interesting!")
}
//字符串切片
String(mixStr.characters.suffix(12).dropLast())
//字符串按空格进行分割,得到一个分割后的数组
mixStr.characters.split(separator: " ").map(String.init)
//如下是按字符分割
var i = 0
mixStr.characters.split{ _ in
if i > 0 {
i = 0
return true
}
else
{
i += 1
return false
}
}.map(String.init)