在F#中声明内部类型

A.R*_*.R. 6 f# types

最近我遇到了像这样的代码清单:

type MyType =
  | MyType of int

and internal MyInternal =
  | One of MyType
  | Two of MyType
Run Code Online (Sandbox Code Playgroud)

我不熟悉'和内部'的用法(在第三行),我想知道使用'type internal'之间是否有任何区别:

type MyType =
  | MyType of int

type internal MyInternal =
  | One of MyType
  | Two of MyType
Run Code Online (Sandbox Code Playgroud)

我简要地尝试了两种形式,但我看不出有什么区别.这只是两种不同的方式来写同样的东西吗?

Lee*_*Lee 5

在这个例子中,and关键字将用于定义可变递归类型 MyTypeMyInternal.由于MyType并且MyInternal不是相互递归的,因此and不是必需的.

正如MSDN页面所述:

和关键字替换除第一个定义之外的所有类型关键字

所以定义是等价的.