当我必须在Swift中的类,结构和枚举之间选择时,我应该如何解释?

当我必须在Swift中的类,结构和枚举之间选择时,我应该如何解释?,第1张

概述因为类,结构和枚举都有构造函数,属性和计算属性,当我们在它们之间进行选择时,我应该怎么解释? ChristopheD和Jack Wu的答案都很好,但我觉得他们不会碰到枚举,或者错过它们的重要性。 Swift枚举(意味着)是代数数据类型的完全实现。类和结构体传统上用于以面向对象语言建模数据,但枚举通常限于用作将变量的值限制为有限数量的可能性的便利方式。例如。 (C ): enum MaritalSt 因为类,结构和枚举都有构造函数,属性和计算属性,当我们在它们之间进行选择时,我应该怎么解释? ChristopheD和Jack Wu的答案都很好,但我觉得他们不会碰到枚举,或者错过它们的重要性。 Swift枚举(意味着)是代数数据类型的完全实现。类和结构体传统上用于以面向对象语言建模数据,但枚举通常限于用作将变量的值限制为有限数量的可能性的便利方式。例如。 (C ):
enum MaritalStatus { UnmarrIEd,MarrIEd,divorced,WIDowedOrWIDowered };MaritalStatus m = UnmarrIEd;

Swift枚举可以做到上面,但他们可以做更多。当然语言指南有一个很好的barcode modelling example,但我知道的最好的例子,真正带来了数据建模与代数数据类型的点是Scott Wlaschin的演示:http://www.slideshare.net/ScottWlaschin/ddd-with-fsharptypesystemlondonndc2013

你可能会从整个演示文稿中受益,但是真正地得到你需要看到的点是幻灯片60,在那里他展示了如何在典型的业务线应用程序中建模“付款方式”。

演示中的示例是F#,但F#不是远离Swift,你可以很容易地映射他们之间。例如,Swift中的支付方法枚举如下:

enum PaymentMethod {  case Cash // No extra data needed.  case Cheque(Int) // Cheque #.  case Card(CardType,CardNumber) // 2 pIEces of extra data.}

上面的观点是每个订单的付款方式只能是上述三种方法中的一种。编译器不允许任何其他 *** 作。这是一个非常简洁的替代建立整个类层次结构,以模拟这些几乎琐碎的事情。

演示真的从那里开始,最好的部分是Swift可以做的几乎一切F#可以在数据建模,使用可选类型等。

总结

以上是内存溢出为你收集整理的当我必须在Swift中的类,结构和枚举之间选择时,我应该如何解释?全部内容,希望文章能够帮你解决当我必须在Swift中的类,结构和枚举之间选择时,我应该如何解释?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1056649.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-25
下一篇 2022-05-25

发表评论

登录后才能评论

评论列表(0条)

保存