美文网首页
[Swift5.1] 9-方法

[Swift5.1] 9-方法

作者: codeTao | 来源:发表于2020-05-30 11:50 被阅读0次

方法(Method)

枚举、结构体、类都可以定义实例方法、类型方法

  • 实例方法(Instance Method):通过实例对象调用
  • 类型方法(Type Method):通过类型调用,用static或者class关键字定义
class Car {
    static var cout = 0
    init() {
        Car.cout += 1
    }
    static func getCount() -> Int { cout }
}
let c0 = Car()
let c1 = Car()
let c2 = Car()
print(Car.getCount()) // 3

self

  • 在实例方法中代表实例对象
  • 在类型方法中代表类型
  • 在类型方法static func getCount中
  • cout等价于self.cout、Car.self.cout、Car.cout

mutating

  • 结构体和枚举是值类型,默认情况下,值类型的属性不能被自身的实例方法修改
  • func关键字前加mutating可以允许这种修改行为
struct Point {
    var x = 0.0, y = 0.0
    mutating func moveBy(deltaX: Double, deltaY: Double) {
        x += deltaX
        y += deltaY
        // self = Point(x: x + deltaX, y: y + deltaY)
    }
}
enum StateSwitch {
    case low, middle, high  
    mutating func next() {
        switch self {
        case .low:
            self = .middle
        case .middle:
            self = .high
        case .high:
            self = .low
        }
    }
}

@discardableResult

在func前面加个@discardableResult,可以消除:函数调用后返回值未被使用的警告⚠

struct Point {
    var x = 0.0, y = 0.0
    @discardableResult mutating
    func moveX(deltaX: Double) -> Double {
        x += deltaX
        return x
    }
}
var p = Point()
p.moveX(deltaX: 10)
@discardableResult  
func get() -> Int {
    return 10
}
get()

相关文章

  • [Swift5.1] 9-方法

    方法(Method) 枚举、结构体、类都可以定义实例方法、类型方法 实例方法(Instance Method):通...

  • 关于SwiftUI,Swift5.1之后的小感

    Swift5.1之前是一门语言,Swift5.1之后是另外一门语言,作为一个从Swift2.0开始就在持续学习这么...

  • Swift5.1 - 方法(7)

    方法 枚举(enum)、结构体(struct)、类(class)都可以定义实例方法、类型方法; swift 中方法...

  • Swift5.1基础

    github:https://github.com/w0shiliyang/Swift5.1

  • UINavigationController中UIViewCon

    运行环境:xcode11,swift5.1 在UINavigationController 重写pushViewC...

  • Swift系统视频学习

    1、swift5.1基础语法:https://docs.swift.org/swift-book/Language...

  • 案例 无牌阵

    1, 我对于他是怎样的存在 圣杯9-,权杖国王,圣杯5 (zy) 圣杯9-和圣杯5: 圣杯5难过,责任推向了外在,...

  • 第2期-1/9-裘叔教练-GRACE

    第2期-1/9-裘叔-GRACE 原文主要介绍MTV自我介绍方法,重点在能提供价值的细节上。 当我们在介绍完自己后...

  • Swift5.1 编写微博首页

    使用Swift5.1编写的简单微博首页,源码在 (https://github.com/Git-ChenPan/...

  • Swift5.1方法&下标

    11.方法 实例方法//实例方法是属于某个特定类、结构体或者枚举类型实例的⽅法。实例方法提供访问和修改实例 属性的...

网友评论

      本文标题:[Swift5.1] 9-方法

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