Swift 初探

Swift 学习第一节

@(Swift 深入学习小记)

  1. if 语句缺省值的使用。
var str: String? = "string"
if let s = str {
    print("print \(s)")
}
  1. switch 支持任意类型的数据以及各种比较操作(不仅仅是整数)
let str = "red pepper"
switch str {
    case "celery":
    print("add some raisins and make ants on a log.")
    case let x where x.hasSuffix("pepper"):
    print("It is a spicy \(x)")
}
  1. for 循环来遍历字典
let dic = ["name":"chuck", "age":"10", "nickname":"zhangsan"]
for (kind, numbers) in dic {
    for number in numbers {
        if number == "10" {
            print("is age number == 10")
        }
    }
}
  1. while 知道代码满足条件
var n = 2
while n < 100 {
    n = n * 2
}
print(n)

var m = 2 
repeat {
    m = m * 2
} while m < 100
print(m)
  1. 函数与闭包

    • 函数可以用元祖来当返回值
    func array(arr: [Int]) -> (min: Int, max: Int, sum: Int) {
        var min = arr[0]
        var max = arr[0]
        var sum = 0
        for a in arr {
            if a > max {
                max = a
            } else if a < min {
                min = a
            }
            sum += a
        }
        return (min, max, sum)
    }
- 函数可以带可变参数
    func sum(numbers: Int...) -> Int {
        var sum = 0
        for num in numbers {
            sum += num
        }
        return sum
    }
- 函数还可以嵌套
- 函数也可以当另一个函数的参数传入
  1. 闭包

    // 闭包可以直接使用,在确定的情况下,可以省略参数和返回值类型
    let numbers = [1,0,2,3,4]
    let sum = numbers.map({ (num:Int) -> Int in
        let resutl = 3 * num
        return resutl
    })

    let sum = numbers.map({number in number * 3})

    // 在最后一个参数是一个闭包的时候,可以直接用花括号取消小括号
    
    let sor = numbers.sorted {$0 > $1}      
  1. Switch 支持 Where 进一步条件判断(还可以添加复合分支)
let yetAnotherPoint = (1, -1)
switch yetAnotherPoint {
case let (x, y) where x == y:
    print("(\(x), \(y)) is on the line x == y")
case let (x, y) where x == -y:
    print("(\(x), \(y)) is on the line x == -y")
case let (x, y):
    print("(\(x), \(y)) is just some arbitrary point")
}
// 打印 "(1, -1) is on the line x == -y"
  1. fallthrough 可以用来贯穿switch

  2. 泛型

    • 泛型函数
    • 泛型类型
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 他们的相识开始于一场辩论赛,她是甲方的主辩,他是乙方的主辩。 从小到大,她是出了名的伶牙俐齿,加上充足的准备,...
    雪主阅读 1,378评论 0 1
  • 这两天在朋友圈看到好几个人都在推荐一本书,于是自己也在淘宝上入了一本。书名是《淘宝天猫店是如何运营的——网店从0到...
    明见苏Karen阅读 3,880评论 2 51
  • 2018年7月6日 星期五 天气晴 (465) 今天下午孩子们放假了,暑假生活开始了,儿子特别高兴。 下午...
    倩轩儿阅读 1,560评论 0 1