美文网首页swift学习
Swift5.1 - 方法(7)

Swift5.1 - 方法(7)

作者: HChase | 来源:发表于2019-07-22 19:35 被阅读29次

方法

  • 枚举(enum)、结构体(struct)、类(class)都可以定义实例方法类型方法
  • swift 中方法可分为:
    1. 实例方法(Instance Method):可以通过实例对象访问;
    2. 类型方法(Type Method):可以通过类对象访问,用 staticclass 关键词定义;
class Person {
    var age = 10
    static var name = "Json"
    func changeAge(_ age: Int) {
        self.age = age
    }
    
    static func show() {
        print(self.name)
    }
}

let p = Person()
p.changeAge(20)
print(p.age)   // 20

Person.show()  // Json
  • self
    1. 在对象方法中,表示实例对象
    2. 在类型方法中,表示类对象
  • 在类型方法的 name 等价于:self.name、Person.self.name、Person.name;

mutating

  • 结构体枚举 属于值类型,值类型的属性,不能被自身的实例方法修改;
  • 在func 关键字前加 mutating 可以允许这种修改行为;
struct Person {
    var age = 10
    mutating func changeAge(_ age: Int) {
        self.age = age
    }
}

@discardableResult

在 func 前加 @discardableResult 关键词,可以消除返回值未引用产生的警告warning;

struct Person {
    var age = 10
    @discardableResult mutating func changeAge(_ age: Int) -> Int {
        self.age = age + 10
        return self.age
    }
}

var p = Person()
p.changeAge(10)
  • 方法是存储在内存的代码区(Text),不占用实例对象的内存;

源代码demo

相关文章

  • Swift5.1 - 方法(7)

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

  • Swift5.1读书笔记

    Swift5.1(参考Swift 编程网站5.1教程) [#%E5%9F%BA%E7%A1%80%E9%83%A8...

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

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

  • Swift5.1基础

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

  • UINavigationController中UIViewCon

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

  • [Swift5.1] 9-方法

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

  • Swift系统视频学习

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

  • Swift5.1 编写微博首页

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

  • Swift5.1方法&下标

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

  • [Swift5.1] 7-闭包

    闭包表达式(Closure Expression) 在Swift中,可以通过func定义一个函数,也可以通过闭包表...

网友评论

    本文标题:Swift5.1 - 方法(7)

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