Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/fsharp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
F# 区分的联合类型的值的正确名称是什么?_F# - Fatal编程技术网

F# 区分的联合类型的值的正确名称是什么?

F# 区分的联合类型的值的正确名称是什么?,f#,F#,考虑以下类型定义: type ChoiceOne = | A | B 这个装订呢 let c1 = A 我假设将其转换为自然语言的正确方法是构造ChoiceOne类型的值并将其绑定到名称c1 现在来看下一个类型定义和绑定: type ChoiceTwo = | A of int | B of float let c1 = A 1 我现在看到了几种描述这里发生的事情的方法: ChoiceTwo类型的值被构造为。。。那1号呢? ChoiceTwo类型的值1被构造为。。。那

考虑以下类型定义:

type ChoiceOne =
  | A 
  | B 
这个装订呢

let c1 = A
我假设将其转换为自然语言的正确方法是构造ChoiceOne类型的值并将其绑定到名称c1

现在来看下一个类型定义和绑定:

type ChoiceTwo =
  | A of int
  | B of float

let c1 = A 1
我现在看到了几种描述这里发生的事情的方法:

ChoiceTwo类型的值被构造为。。。那1号呢? ChoiceTwo类型的值1被构造为。。。那么A呢? ChoiceTwo类型的值与内部值?关联值。。。1是由。。。
我想选项3最好地描述了这种情况,但是如何正确地指定值1相对于另一个值呢?类型为ChoiceTwo的值?

这是所有正在分裂的头发。没有人真正关心在大学里的测验之外如何准确地说出这些话,即使这样,我还是建议转学到另一所大学:-

但如果你真的想挑拨离间,那就来吧

在第一个示例中,未构造值A。因为它没有参数,所以它只能有一个实例,并且该实例始终存在,所以不需要构造它。 可以肯定的是,A仍然可以被称为构造函数,但它同时也是一个值


在第二个示例中,有时会说构造了一个值A1,但更常见的是用参数1构造了一个值a,这都是分裂的头发。没有人真正关心在大学里的测验之外如何准确地说出这些话,即使这样,我还是建议转学到另一所大学:-

但如果你真的想挑拨离间,那就来吧

在第一个示例中,未构造值A。因为它没有参数,所以它只能有一个实例,并且该实例始终存在,所以不需要构造它。 可以肯定的是,A仍然可以被称为构造函数,但它同时也是一个值


在第二个示例中,有时会说构建了值A1,但更常见的情况是使用参数1构建了值a。以下是我使用的术语,我相信这是广泛接受的,使用我自己的示例:

MyDU型= |整型 |B A是一个例子 A也是一个函数,它接受int并返回MyDU类型的值 因此,1是MyDU类型的值 B是一个例子 B也是MyDU类型的值
这里只需要大小写、值、函数和类型。不要使用构词法。一般来说,当谈论F代码时,如果您能准确地用我推荐的词替换您使用的任何词,那么就这样做吧

以下是我使用的术语,我相信它已被广泛接受,以我自己的例子:

MyDU型= |整型 |B A是一个例子 A也是一个函数,它接受int并返回MyDU类型的值 因此,1是MyDU类型的值 B是一个例子 B也是MyDU类型的值
这里只需要大小写、值、函数和类型。不要使用构词法。一般来说,当谈论F代码时,如果您能准确地用我推荐的词替换您使用的任何词,那么就这样做吧

我可以理解你关于头发分裂的观点,但在向F或FP新手解释事情时,了解正确的措辞通常非常有用。就像在C中一样,当你需要澄清一些东西时,比如while*s++=*t++=0{;}对Java程序员来说。我认为措辞可能很重要,因为DU案例和类型之间经常会有很多混淆,许多人确实需要口头交流。我明白你关于吹毛求疵的观点,但在向F或FP新手解释事情时,了解正确的措辞通常非常有用。就像在C中一样,当你需要澄清一些东西时,比如while*s++=*t++=0{;}对Java程序员来说。我认为措辞可能很重要,因为DU案例和类型之间经常会有很多混淆,许多人确实需要口头交流。单词标记也用于a,B,…单词标记也用于a,B。。。