美文网首页Swift开发
Swift基本语法(03)----循环/字符串

Swift基本语法(03)----循环/字符串

作者: DXSmile | 来源:发表于2016-04-21 00:37 被阅读75次

Swift 基本语法

大体来说,Swift我们需要掌握下面一些常用的基本语法:
我会一步一步整理出来, 今天暂时整理常量和变量,可选项;

1. 常量 & 变量
2. 可选项
3. 控制流
      if
      三目
      if let
      guard
      switch
4. 字符串
5. 循环
6. 集合
      6.1 数组
      6.2 集合
7. 函数
8. 闭包
9. 面向对象

接上期:

Swift基本语法(01) --- 常量 & 变量 & 可选项
Swift基本语法(02) --- 控制流

一. for 循环

OC 风格的循环

var sum = 0
for var i = 0; i < 10; i++ {
    sum += i
}
print(sum)

for-in,0..<10 表示从0到9

sum = 0
for i in 0..<10 {
    sum += i
}
print(sum)

范围 0...10 表示从0到10

sum = 0
for i in 0...10 {
    sum += i
}
print(sum)

省略下标

  1. _ 能够匹配任意类型
  2. _ 表示忽略对应位置的值
for _ in 0...10 {
    print("hello")
}

二. 字符串

在 Swift 中绝大多数的情况下,推荐使用 String 类型

1. 特点:

** &1.1 String 是一个结构体,性能更高**
* String 目前具有了绝大多数 NSString 的功能
* String 支持直接遍历
&1.2 NSString 是一个 OC 对象,性能略差
* Swift 提供了 String 和 NSString 之间的无缝转换

2. 字符串演练

  • 遍历字符串中的字符
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)

3. String & Range 的结合

  • 在 Swift 中,String 和 Range连用时,语法结构比较复杂
  • 如果不习惯 Swift 的语法,可以将字符串转换成 NSString 再处理
let helloString = "我们一起飞"
(helloString as NSString).substringWithRange(NSMakeRange(2, 3))
  • 使用 Range 的写法
let startIndex = helloString.startIndex.advancedBy(0)
let endIndex = helloString.endIndex.advancedBy(-1)
helloString.substringWithRange(startIndex..<endIndex)

下一篇是 :

  1. 集合
    1. 数组
    2. 集合
      ** 待续 ... **

相关文章

网友评论

    本文标题:Swift基本语法(03)----循环/字符串

    本文链接:https://www.haomeiwen.com/subject/dmvglttx.html