gpt4 book ai didi

f# - 是否可以将记录的字段设为私有(private)?或者将记录成员设置为私有(private)?

转载 作者:行者123 更新时间:2023-12-03 04:21:57 24 4
gpt4 key购买 nike

我想坚持使用记录,并且不想返回对象。所以我想知道是否可以将记录的字段设置为私有(private)?或者创建记录私有(private)成员。其他具体类型(例如可区分联合)怎么样?

或者,这个要求是否违反了语言规范?

最佳答案

不,单个字段不可能是私有(private)的:http://msdn.microsoft.com/en-us/library/dd233184

但是,您可以将所有字段设为私有(private)并通过属性公开选定的字段。请注意,您将需要一个创建函数来创建记录的实例,因为它的字段是私有(private)的:

type MyRec = 
private
{ a : int
b : int }
member x.A = x.a
member private x.Both = x.a + x.b // Members can be private
static member CreateMyRec(a, b) = { a = a; b = b }

不过,成员可以是私有(private)的,如上面的 MyRec.Both 属性所示。

编辑:以上内容使字段对定义 MyRec 的模块私有(private),而不是对 MyRec 私有(private)。请参阅 Daniel 对 Weird accessibility scopes when F# record's fields are declared private 的回答.

关于f# - 是否可以将记录的字段设为私有(private)?或者将记录成员设置为私有(private)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12389308/

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