【问题标题】:The difference between Swift's instance methods and type methodsSwift 的实例方法和类型方法的区别
【发布时间】:2015-04-17 14:02:48
【问题描述】:

我是 Swift 编程新手(我有 HTML/CSS、JS、Jquery、PHP 等 Web 语言经验)。我正在浏览 Apple 文档和各种在线资源,但似乎找不到我的问题的答案:类中的实例方法和类型方法有什么区别?

我了解两者的语法,以及如何使用两者,但我不确定什么时候使用一个比另一个更好?您是否有理由要在不创建所述类的实例的情况下调用类中的方法?我无法将我的大脑包裹在一个实际使用的例子上。

谢谢!

【问题讨论】:

    标签: class swift


    【解决方案1】:

    当您想要将某种功能连接到类而不强制客户端实例化该类时,以及当方法不依赖于特定对象的状态时,类方法很有用。

    在面向对象的编程方法中,它们通常用于代替传统的实用程序样式函数,后者在不引用特定对象的情况下接受某种输入并返回输出,例如,具有类方法“Post”的 HTTP 路由系统" 和 "Get" 将 url 和查询参数作为参数并向服务器发送请求。这些函数在一系列不同的类中都很有用,并且不一定需要由底层实例变量来表示。

    它们还可用于包含两个对象属于同一类的比较函数。假设您正在尝试计算两个矩阵对象的点积 - 选择一个对象作为比较另一个对象而不是相反的基础是没有意义的 - 特别是因为计算点积对任何一个底层矩阵对象都没有影响。那么首选的解决方案是:

     class func dotProduct(a: Matrix, b: Matrix) -> Double
    

    【讨论】:

      猜你喜欢
      • 2013-06-12
      • 1970-01-01
      • 2015-04-18
      • 2015-12-11
      • 2010-11-06
      • 2012-08-06
      • 2012-08-13
      • 2017-02-15
      相关资源
      最近更新 更多