swift4.0 字段 含义

2018-03-05  本文已影响26人  _feiyu_2100
有你生活更精彩.jpg
字段 含义 例子
var 定义变量,设置之后可以修改 var number: Int = 30
let 定义常量,设置之后不可以修改一般情况下先用let,可以避免数据被修改,保证数据安全性 let number: Int = 30
强制解析 1.确定可选包含一个非nil的值,否则会运行错误 声明可选变量时使用感叹号(!) 2. 替换问号(?)这样可选变量在使用时就不需要再加一个感叹号(!)来获取值,它会自动解析。) var myString:String? myString ="Hello, Swift!" if myString != nil { print( myString! )}else{ print("myString 值为 nil"}
? 可选(Optionals)类型,值会默认为 nil,在类型和 ?之间没有空格 var optionalInteger: Int?
??
as 字面理解就是有保证的转换,从派生类转换为基类的向上转型 // 将1转成float let num = 1 as CGFloat // dog转换到父类 animal class Animal {} class Dog: Animal {} let d = Dog() d as Animal
as? Swfit代码写一段时间后会发现到处都是 ? ,这预示着如果转换不成功的时候便会返回一个 nil 对象。成功的话返回可选类型值(optional) // Dog、Cat和Animal的转换关系class Animal {}class Cat: Animal {}class Dog: Animal {var name = "Spot"}let dog: Dog? = nildog?.name // 选择调用,返回空值nildog!.name // 强行调用,报错let animal: Animal = Cat()animal as? Dog // 猫转狗失败,返回nil animal as! Dog // 猫强行转狗,失败报错
as! 理解:字面理解就是有强项转换,即向下转型,子类(派生类)向父类转换,官方解释说这是一个不被保证的转换,可能会因为强转的失败而会导致崩溃。同时 !是一个陷阱的标志,就像⚠️一样,用起来存在一定危险性 // Dog到Animal的转化 class Animal {} class Dog: Animal {} let a: Animal = Dog() a as Dog // as不能将a转成Dog,即不能向下转换 a as! Dog // as!能强行将a转成Dog -> Bingo
guard 作为保卫作用 // 如果有结果,那么看一下结果是否为空,为空退出 guard let placemarks = placemarks else { return }
open 可以被任何人使用,包括override和继承 /// ModuleA:这个类在ModuleA的范围外是不能被继承的,只能被访问public class NonSubclassableParentClass {}
public 可以被任何人访问。但其他module中不可以被override和继承,而在module内可以被override和继承 // 在ModuleA的范围外可以被继承open class SubclassableParentClass {}
final 不允许对其修饰的内容进行继承或者重新操作。final关键字可以在class、func和var前修饰 public final class FinalClass { }
internal 默认访问级别,internal修饰符可写可不写,internal访问级别所修饰的属性或方法在源代码所在的整个模块都可以访问。 internal class InternalClass {}
fileprivate 访问级别所修饰的属性或者方法在当前的Swift源文件里可以访问 fileprivate var name = "wangsan"
private 访问级别所修饰的属性或者方法只能在当前类里访问 private var name = "wangsan"
override 重载 // 重写方法 override func a() { }
extension 扩展 https://www.jianshu.com/p/edf4cad8dfd5
lazy 懒加载,需要初始化一次 lazy var first = NSArray(objects: "1","2"
typealias 已存在的类型重新定义名称 typealias Location = CGPoint let point: Location = CGPoint(x:1 , y: 1)

5种修饰符访问权限排序 :open > public > interal > fileprivate > private

不足的地方后续会继续添加
参考的资源:
1.Swift开发语法 : https://www.jianshu.com/p/5e2d4c34f18e

  1. as、as!、as? 关键字 :http://blog.csdn.net/robinson_911/article/details/74139753
  2. open,public,internal,fileprivate private:
    http://blog.csdn.net/sun_cui_hua/article/details/78021804https://www.jianshu.com/p/604305a61e57

4.extension : https://www.jianshu.com/p/edf4cad8dfd5
一个适合初学者swift的Demo:https://github.com/hrscy/DanTang(仅供参考学习)
下面是使用swift4.0 编写的Demo:https://github.com/guofeifeifei/swift-DanTang(仅供参考学习)

上一篇 下一篇

猜你喜欢

热点阅读