gpt4 book ai didi

f# - 我可以根据另一个定义记录类型吗?

转载 作者:行者123 更新时间:2023-12-04 22:46:26 25 4
gpt4 key购买 nike

type ProcessParametersPair = {Definition:string; Provided:string}
type QueryResult = { DefinitionId:int;DefinitionName:string; ProcessTemplateId:int; StatusName:string; DefinitionArgs:string; BuildArgs:string;
StatusCode:int option;cleanWorkspaceOption:string; RawProcessParameters:ProcessParametersPair; lastBuild:Tbl_Build}
type QueryDisplay = { DefinitionId:int;DefinitionName:string; ProcessTemplateId:int; StatusName:Object; DefinitionArgs:string; BuildArgs:string;
StatusCode:int option;cleanWorkspaceOption:string; RawProcessParameters:Object; lastBuild:Object}

我真的必须重复 QueryDisplayRecord 匹配的所有字段吗?我可以像你对​​记录实例做的事情一样吗? type QueryDisplay = {QueryResult with lastBuild:Object}
在这种情况下,我会根据字段类型改变记录,我也很想知道我是否可以这样做,但是在添加的字段而不是类型更改的字段上。

我不是指实例,我指的是记录类型定义。

这两种都有可能吗?

最佳答案

记录类型不能从另一种类型“继承”。您可以将所有常见字段放在一个单独的类型中并引用它:

type Common = { A: int; B: int }
type Record1 = { Common: Common; C: int }
type Record2 = { Common: Common; D: int }

或者使用类:
type Common(a, b) =
member val A = a
member val B = b

type Class1(a, b, c) =
inherit Common(a, b)
member val C = c

type Class2(a, b, d) =
inherit Common(a, b)
member val D = d

关于f# - 我可以根据另一个定义记录类型吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24044021/

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