美文网首页
static 和 class

static 和 class

作者: fordring2008 | 来源:发表于2017-02-04 09:27 被阅读13次

    Swift 中表示“类型范围作用域”这一概念的有两个不同的关键字,  static  和  class

    在非 class 的类型 enum, struct 上下文中,我们统一使用 static 来描述

    struct Point {

    let x: Double

    let y: Double

    // 存储属性

    static let zeo = Point(x: 0, y: 0)

    // 计算属性

    static var ones: [Point]{

    return [Point(x: 1, y: 1),

    Point(x: -1, y: 1),

    Point(x: 1, y: -1),

    Point(x: -1, y: -1)]

    }

    // 类型方法

    static func add(p1: Point, p2: Point) -> Point {

    return Point(x: p1.x + p2.x, y: p1.y + p2.y)

    }

    }

    let pA = Point(x: 0, y: 1)

    print(pA.x)

    print(Point.zeo)

    class Student {

    // 类型的存储属性 , 在 class 中,不能使用 class 修饰存储性属性,可以修饰计算性的

    static let age = 10

    // 类型的计算性属性                    // 不能调用实例的属性

    // 这里的 class 相当于 static

    class var nameString : String? {

    return "\(age) + hello"

    }

    // 实例的存储属性

    var name:String?

    var sex = 10

    // 实例的计算性属性, 可以调用类型的属性(计算性/存储性)

    var sexString : String? {

    return "\(sex) --- \(Student.age)"

    }

    }

    let age = Student.age

    let nameString = Student.nameString // "10 + hello"

    let sexString = Student().sexString  //  "10 --- 10"

    相关文章

      网友评论

          本文标题:static 和 class

          本文链接:https://www.haomeiwen.com/subject/bbsjittx.html