📝 F#教程
110篇技术文档📅  最后修改于: 2020-11-21 06:49:32        🧑  作者: Mango
像列表一样的序列也代表值的有序集合。但是,需要时可以计算序列或序列表达式中的元素。它们不是立即计算的,因此,它们被用来表示无限的数据结构。定义序列序列使用以下语法定义-例如,创建序列和序列表达式与列表类似,您可以使用范围和理解来创建序列。序列表达式是您可以编写的用于创建序列的表达式。这些可以做到-通过指定范围。通过增加或减少指定范围。通过使用yield关键字来生成成为序列一部分的值。通过使用→运算...
📅  最后修改于: 2020-11-21 06:50:05        🧑  作者: Mango
F#中的集合是一种数据结构,它充当项目的集合,而不保留项目的插入顺序。集不允许将重复的条目插入到集合中。创建集合可以通过以下方式创建集-通过使用Set.empty创建一个空集,并使用add函数添加项。将序列和列表转换为集合。以下程序演示了这些技术-现场演示编译并执行程序时,将产生以下输出-集合的基本操作下表显示了集合的基本操作-ValueDescriptionadd : ‘T → Set<‘T> ...
📅  最后修改于: 2020-11-21 06:50:34        🧑  作者: Mango
在F#中,映射是一种特殊的集合,它将值与键相关联。映射的创建方式与集合的创建方式类似。创建地图通过使用Map.empty创建一个空地图并使用Add函数添加项目来创建地图。以下示例演示了这一点-例现场演示编译并执行程序时,将产生以下输出-您可以使用键访问地图中的各个元素。例现场演示编译并执行程序时,将产生以下输出-地图的基本操作添加模块名称下表显示了地图上的基本操作-MemberDescriptio...
📅  最后修改于: 2020-11-21 06:50:58        🧑  作者: Mango
并集或有区别的并集使您可以构建代表定义明确的选择集的复杂数据结构。例如,您需要构建选择变量的实现,该变量具有两个值yes和no。您可以使用联合工具进行设计。句法区分联合使用以下语法定义-我们对选择的简单实现将如下所示-以下示例使用类型选择-现场演示编译并执行程序时,将产生以下输出-例子1以下示例显示了将状态设置为高或低的电压状态的实现-现场演示编译并执行程序时,将产生以下输出-例子2现场演示编译并...
📅  最后修改于: 2020-11-21 06:51:24        🧑  作者: Mango
F#中的变量是不可变的,这意味着一旦将变量绑定到值,就无法更改它。它们实际上被编译为静态只读属性。下面的示例演示了这一点。例现场演示编译并执行程序时,它显示以下错误消息-可变变量有时您需要更改存储在变量中的值。为了指定在程序的后面部分声明和分配的变量的值可能有变化,F#提供了mutable关键字。您可以使用此关键字声明和分配可变变量,您将更改其值。mutable关键字允许您在可变变量中声明和分配值...
📅  最后修改于: 2020-11-21 06:52:41        🧑  作者: Mango
数组是固定大小的,从零开始的,可变的连续数据元素的集合,它们都是同一类型。创建数组您可以使用各种语法和方式或使用Array模块中的函数来创建数组。在本节中,我们将讨论不使用模块函数创建数组的情况。创建没有函数的数组的三种语法方式-通过列出[|之间的连续值和|],并用分号分隔。通过将每个元素放在单独的行上,在这种情况下,分号分隔符是可选的。通过使用序列表达式。您可以使用点运算符(。)和方括号([和]...
📅  最后修改于: 2020-11-21 06:53:20        🧑  作者: Mango
List <‘T>类表示可以通过索引访问的对象的强类型列表。它是List类的可变对等物。它与数组相似,因为它可以由索引访问,但是,与数组不同,可以调整列表的大小。因此,您无需在声明期间指定大小。创建一个可变列表使用new关键字并调用列表的构造函数来创建列表。以下示例演示了这一点-现场演示编译并执行程序时,将产生以下输出-List(T)类List(T)类表示可以通过索引访问的对象的强类型列表。它提供...
📅  最后修改于: 2020-11-21 06:54:04        🧑  作者: Mango
Dictionary <‘TKey,’TValue>类是F#地图数据结构的可变模拟,并且包含许多相同的功能。从F#的“地图”一章中概述,地图是一种特殊的集合,将值与键相关联。创建可变字典使用new关键字并调用列表的构造函数来创建可变字典。以下示例演示了这一点-现场演示编译并执行程序时,将产生以下输出-Dictionary(TKey,TValue)类Dictionary(TKey,TValue)类表...
📅  最后修改于: 2020-11-21 06:57:13        🧑  作者: Mango
基本输入输出包括-从控制台读取和写入。从文件读取和写入。Core.Printf模块我们已经使用了printf和printfn函数来写入控制台。在本节中,我们将研究F#的Printf模块的详细信息。除上述功能外,F#的Core.Printf模块还具有其他各种使用%标记作为占位符进行打印和格式化的方法。下表显示了具有简要说明的方法-ValueDescriptionbprintf : StringBui...
📅  最后修改于: 2020-11-21 06:57:37        🧑  作者: Mango
泛型允许您延迟对类或方法中编程元素的数据类型的指定,直到在程序中实际使用它为止。换句话说,泛型允许您编写可与任何数据类型一起使用的类或方法。您编写类或方法的规范,并用替代参数表示数据类型。当编译器遇到类的构造函数或方法的函数调用时,它将生成代码以处理特定的数据类型。在F#中,函数值,方法,属性和聚合类型(例如类,记录和已区分的并集)可以是通用的。泛型构造包含至少一个类型参数。通用函数和类型使您可以...
📅  最后修改于: 2020-11-21 06:58:00        🧑  作者: Mango
委托是一个引用类型变量,其中包含对方法的引用。可以在运行时更改参考。 F#委托类似于C或C++中的函数指针。宣布代表委托声明确定委托可以引用的方法。委托可以引用具有与委托相同签名的方法。委托声明的语法是-例如,考虑代表-这两个委托都可以用于引用具有两个int参数并返回int类型变量的任何方法。在语法中-type1代表参数类型。type2表示返回类型。请注意-参数类型将被自动管理。可以将委托附加到函...
📅  最后修改于: 2020-11-21 06:58:16        🧑  作者: Mango
枚举是一组命名的整数常量。在F#中,枚举(也称为枚举)是整数类型,其中将标签分配给值的子集。您可以使用它们代替字面量,以使代码更具可读性和可维护性。声明枚举声明枚举的一般语法是-以下示例演示枚举的使用-例现场演示编译并执行程序时,将产生以下输出-...
📅  最后修改于: 2020-11-21 06:58:54        🧑  作者: Mango
模式匹配使您可以“将数据与一个或多个逻辑结构进行比较,将数据分解为组成部分,或以各种方式从数据中提取信息”。换句话说,它提供了一种更灵活,更强大的方法来针对一系列条件测试数据,并根据满足的条件执行一些计算。从概念上讲,它就像一系列if … then语句。句法在高级方面,模式匹配遵循F#中的此语法-哪里,每个|符号定义条件。->符号表示“如果条件为真,则返回该值…”。_符号提供默认模式,这意味着它与...
📅  最后修改于: 2020-11-21 06:59:35        🧑  作者: Mango
例外是在程序执行期间出现的问题。 F#异常是对程序运行时出现的异常情况的响应,例如试图除以零。异常提供了一种将控制权从程序的一部分转移到另一部分的方法。 F#异常处理提供以下构造-ConstructDescriptionraise exprRaises the given exception.failwith exprRaises theSystem.Exceptionexception.try ...
📅  最后修改于: 2020-11-21 07:00:01        🧑  作者: Mango
类是表示可以具有属性,方法和事件的对象的类型。 “它们用于对应用程序中的动作,流程和任何概念实体建模”。句法定义类类型的语法如下:哪里,类型名称是任何有效的标识符。默认的访问修饰符是public。类型参数描述了可选的通用类型参数。参数列表描述了构造函数参数。主构造函数的默认访问修饰符是public。与optionalas关键字一起使用的标识符为实例变量或自标识符命名,可以在类型定义中使用它来引用类...