gpt4 book ai didi

swift - 当我必须在 Swift 中的类、结构和枚举之间进行选择时,我应该如何推理?

转载 作者:IT王子 更新时间:2023-10-29 05:02:57 26 4
gpt4 key购买 nike

既然类、结构和枚举都有构造函数、属性和计算属性,那么在它们之间进行选择时我应该如何推理?

最佳答案

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 中的类、结构和枚举之间进行选择时,我应该如何推理?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24025940/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com