微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Swift 是否支持新的数据类型和代数数据类型?

如何解决Swift 是否支持新的数据类型和代数数据类型?

在 Swift 和许多其他语言中,内置了字符串、整数等数据类型...

例如,在 Haskell 中,您可以使用关键字 data 来创建您自己的数据类型。

数据形状=圆形浮动浮动浮动|矩形浮子 浮子 浮子 浮动

但是,我不确定 Swift 是否有类似的方法,或者它是否支持新的数据类型。

解决方法

是的,Wikipedia 将 Swift 列为支持代数数据类型的语言之一。

仅仅引用维基百科并不是很有说服力 :D,所以让我们在 Swift 中显示您的 Shape 类型。这是通过具有关联值的枚举来实现的。

enum Shape {
    case circle(Float,Float,Float)
    case rectangle(Float,Float)
}

Circle 1 2 3 在 Haskell 中会转换为 Shape.circle(1,2,3) 在 Swift 中。

您还可以为这些关联值添加标签:

enum Shape {
    case circle(centerX: Float,centerY: Float,radius: Float)
    case rectangle(x: Float,y: Float,width: Float,height: Float)
}

详细了解关联类型为 here 的枚举。

另一个例子是 Haskell 列表类型:

indirect enum List<T> {
    case `nil`
    case cons(T,List<T>)
}

请注意,与 Haskell 不同,这不是列表在 Swift 中实际的实现方式。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。