内容简介:lazy懒加载(Object-C的懒加载是当使用时才去开辟空间,set get方法)Swift 懒加载相当于静态空间,只运行一次....只打印一次 a = 11、
final
//5防止重写 class finalClass{ final var applePen = 1 final func test(){ } final class func test2(){ } } class finalSub: finalClass { //无法重写基类 定义了 final 的属性和函数 }
//加到class前,无法被继承 final class unDo{ }
@discardableResult
@discardableResult //取消 如果不使用返回值的警告 class func unUseReuslt(d x:Int) -> Bool {
mutating
//实例化的时候,实参是不可改变,如果确实需要改的话加 mutating mutating func changeby(justA:Int,justB:Int) {
convenience便利构造器
//3 指定构造器 和 便利构造器 class Food { var name: String init(name: String) { self.name = name } //便利构造器 convenience init() { self.init(name: "[Unnamed]") } }
lazy
lazy懒加载(Object-C的懒加载是当使用时才去开辟空间,set get方法)
Swift 懒加载相当于静态空间,只运行一次....只打印一次 a = 1
lazy var a:Int = { print("a = 1") return 1 }() var ja:Jason? = Jason(name:"Jason") //Jason 实例化 var aa = ja?.a var aaa = ja?.a var aa2 = ja?.a
inout相当于C++的引用
func typeFunc(xx x:inout Int, yy y:inout Int) { let value = x x = y y = value }
open,public,internal,fileprivate,private
1、 private
private访问级别所修饰的属性或者方法只能在当前类里访问。
2、fileprivate
fileprivate访问级别所修饰的属性或者方法在当前的Swift源文件里可以访问。
3、internal(默认访问级别,internal修饰符可写可不写)
internal访问级别所修饰的属性或方法在源代码所在的整个模块都可以访问。
如果是框架或者库代码,则在整个框架内部都可以访问,框架由外部代码所引用时,则不可以访问。
如果是App代码,也是在整个App代码,也是在整个App内部可以访问。
4、public
可以被任何人访问。但其他module中不可以被override和继承,而在module内可以被override和继承。
5,open
可以被任何人使用,包括override和继承。
访问顺序:
现在的访问权限则依次为:open,public,internal,fileprivate,private。
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。