Swift 笔记

Swift 笔记
1
闭包是什么 : 就是用闭包表达式,直接写函数实现 . 功能性自包含模块,可以再代码中被传递和使用
  
闭包指的是一个函数以及被他所捕获的所有变量的组合,使用 {} 创建的函数被称为闭包表达式,使用 {} 和函数声明的没有不一样的 .
2
值类型 : struct enum 当把一个结构体变量赋值给另一个时,那么这两个变量就会包含同样的值 .
3  
引用类型 : 它是指向另一个值得值,两个引用可能会指向同一个值,这个值可能会被程序的两个不同的部分所改变
   class
,是引用类型,不能再一个变量里面直接持有一个类的实例,对弈一个类里面,我们只能在变量里持有对他的引用,然后用这个引用来访问它 .
  
let 声明一个引用变量,会使引用变为常量,但是并不意味着所引用的对象本身不能被改变 .
4
函数也是值,如果一个函数接受别的函数作为参数,或者一个函数的返回值是函数,那么这样的函数就叫做高阶函数
5
函数不需要被声明在最高层级,你可以在一个函数内部声明另一个函数,也可以在一个 do 作用域或者其他作用域中声明函数 . 如果一个函数被定义在外层作用域中,但是被传递出这个作用域,他能够捕获局部变量,这些变量将存在于函数中,不会随着局部作用域的结束而消亡,函数将持有他们的状态
6
函数是引用类型
7
定义在类或者协议中的函数就是方法,他们有一个隐式的 self 参数 . 如果一个函数不是接受多个参数
8
不是方法的函数叫做自由函数,自由函数结构体上调用的方法是静态派发,对于这些函数的调用在编译的时候就确定了,对于静态派发的调用,编译器可能能够内联这些函数,就是,完全不去做函数调用,而是将这部分代码替换为需要执行的函数 .
9
类或者协议上的方法是动态派发
10
多态 : 子类型和方法的重写(就是覆盖),函数重载,通过泛型,一次性编写能够接受任意类型的函数或者方法 .OC 中没有重载,用 withName 代替

1
优先使用结构体;除非希望被继承,否则都应标记为 final ;除非一个闭包后面立即跟随左括号,否则都应该使用尾随闭包(闭包是最后一个参数,括号提前);使用 guard 提早退出方法;避免对可选值进行强制解包和隐式强制解包;不写重复的代码,提取到一个函数中,并考虑将这个函数转化为协议扩展的可能性;试着用 map , reduce ;试着使用不可变值,除非需要改变某个值 . 不过为了代码清晰高效,可以使用可变版本,用函数讲可变的部分封装起来,可以把副作用隔离;除非确实需要,否则不要使用 self. ,闭包中使用 self 是一个清晰的信号,表明闭包将会捕获 self ;尽可能对现有类型和协议进行扩展而不是写一些全局函数

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值