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/