gpt4 book ai didi

.net - F# 多态性

转载 作者:行者123 更新时间:2023-12-01 09:34:08 25 4
gpt4 key购买 nike

有什么方法可以处理 F# 中关于记录类型的多态性?

举个例子,假设我们有两种地址记录类型,街道地址和邮箱地址。我认为在行为方面可以通过模式匹配来处理它们。但是引用呢,有什么方法可以从其他记录中引用(不是指对象引用)这两种类型

最佳答案

如果我正确理解您的问题,我会使用有区别的工会:

type StreetAddress = {. . . }
type BoxAddress = {. . .}

type Address =
| StreetAddress of StreetAddress
| BoxAddress of BoxAddress

然后您可以创建和引用 Address 值。

如果街道和邮箱地址共享一些公共(public)数据,您可以将其放入单独的 BaseAddress 记录类型中,然后在 StreetAddressBoxAddress,或者直接由Address使用:

type BaseAddress = {. . . }
type StreetAddress = {. . . }
type BoxAddress = {. . .}

type Address =
| StreetAddress of BaseAddress*StreetAddress
| BoxAddress of BaseAddress*BoxAddress

关于.net - F# 多态性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11450408/

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