zoukankan      html  css  js  c++  java
  • swift笔记

    init/deinit

    enum serverResponse{

    case Result(String,String)

    case Error(String)

    }

    协议 protocol

    class enum struct 都可实现protocol , 泛型

    mutating 标记一个会修改结构体的方法

    extension Int:xxxProtocol //为现有类增加功能

    泛型类型名后可用where 对类型限定 where可省略

    <T:Equatable> == <T where T:Equatable>

    typealias abc =  UInt16   //类型别名

    元组

    let http400Eroor = (404,"Not,Found")

    let (statusCode,statusMessage) = http404Error //从无组中提取数据

    http404Eroor.0 //用下标取数据

    let http200Status = (statusCode:200,description:"ok") //定义时给元素命名

    http200Status.statusCode //直接取 

    隐式解析可选类型 声明时? 变为! 使用时不用后缀,但可以用if 绑定

    a%b == a% -b //取余 b符号被忽略,a为负,结果为负

    8 % 2.5 //=0.5

    空合运算符(nil coalesing operator)

    a ?? b a不空结果为a,否则为默认值b; a optional ,b要和a的存储值一致

     

    string struct enum 都是值类型

    "abc".characters.count //字符个数

    使用 ErrorType 的帮助建立你的异常类型

    使用 throws 来声明异常,用 throw 来抛出异常

    使用 do-catch 机制来获取和处理异常

    处理异常

    do{ try xx()

    }catch ErrorType{

    }

    值绑定

    let point = (3, 2)

    switch point {

    // point 中的元素绑定到 x y

    case let (x, y):

        print("The point is at ((x), (y)).")

    }

    // 打印 “The point is at (3, 2).”

     

    let someOptional: Int? = 42

    // 使用枚举用例模式匹配

    if case .Some(let x) = someOptional {

        print(x)

    }

     

    // 使用可选模式匹配

    if case let x? = someOptional {

        print(x)

    }

    限制协议只能被类类型采纳,需要使用 class 关键字

    protocol SomeProtocol: class {

        /* 这里是协议成员 */

    }

    使用 static 声明修饰符可以在协议声明中声明一个类型方法。结构体实现这些方法时使用 static 声明修饰符,类在实现这些方法时,

    除了使用 static 声明修饰符,还可以选择使用 class 声明修饰符

    subscript (参数列表) -> 返回类型 { get set } //下标

     

    结构体和枚举的构造器可以调用其他已声明的构造器,从而委托其他构造器来进行部分或者全部构造过程。

    要为类声明一个便利构造器,用 convenience 声明修饰符来标记构造器声明  便利构造器不能调用超类的构造器

    convenience init(参数列表) {  

        构造语句

    }  

    运算符声明

    infix prefix postfix

    infix operator 运算符名称 {

        precedence 优先级

        associativity 结合性

    }

    三个级别的访问控制:publicinternal (默认) private

    表达式

    表达式.init(构造器参数) == 表达式(参数)

    表达式.self 返回SomeClass 类型本身

    表达式.dynamicType

  • 相关阅读:
    2020年,初级、中级 Android 工程师可能因离职而失业吗?
    Android 后台运行白名单,优雅实现保活
    使用DataBinding还在为数据处理头疼?这篇文章帮你解决问题
    Android 7.x Toast BadTokenException处理
    2017-2020历年字节跳动Android面试真题解析(累计下载1082万次,持续更新中)
    Flutter 尺寸限制类容器总结:这可能是全网解析最全的一篇文章,没有之一!
    并行收集器
    高性能索引策略
    Innodb简介
    索引的优点
  • 原文地址:https://www.cnblogs.com/anjuncc/p/5694831.html
Copyright © 2011-2022 走看看