F# - 基础语法

F# - 基础语法 首页 / F#入门教程 / F# - 基础语法

您已经了解了F#程序的基本结构,因此很容易理解F#编程语言的其他基本构造块。

F#关键字

下表显示了关键字和关键字的简要说明,无涯教程将在后续章节中讨论这些关键字的用法。

关键字说明
abstract表示一个方法,该方法在声明的类型中没有实现。
and用于相互递归绑定,属性声明中,并且对通用参数具有多个约束。
as用于给当前类对象一个对象名。
asset用于在调试过程中验证代码。
base用作基类对象的名称。
begin表示代码块的开始。
class表示类定义的开始。
default表示抽象方法的实现。
delegate用于声明委托。
do用于循环构造或执行命令性代码。
done表示循环表达式中代码块的结尾。
downcast用于转换为继承链中较低的类型。
downto在 for 表达式中,当反向计数时使用。
elif用于条件分支, if的简短形式。
else用于条件分支。
end

在类型定义和类型扩展中,指示成员定义部分的结尾。用于指定以begin关键字开头的代码块的结尾。

Exception用于声明异常类型。
extern表示在另一个二进制文件或程序集中定义了声明的程序元素。
false用作布尔类型。
finally与try引入代码块一起使用,无论是否发生异常,该代码块都会执行。
for用于循环构造。
fun用于lambda表达式,也称为匿名函数。
function用作fun关键字和在单个参数上具有模式匹配的lambda表达式中的match表达式替代。
global用于引用顶级.NET命名空间。
if用于条件分支构造中。
in用于序列表达式,并以冗长的语法将表达式与绑定分开。
inherit用于指定基类或基接口。
inline用于指示应直接集成到调用者代码中的功能。
interface用于声明和实现接口。
internal用于指定成员在部件内部可见,而在部件外部不可见。
lazy用于指定仅在需要输出时才执行的计算。
let用于将名称关联值的函数。
let!在异步工作流中用于将名称绑定到异步计算的输出,用于将名称绑定到输出的计算类型。
match用于通过将值与模式进行比较来进行匹配。
member用于声明对象类型的属性或方法。
module用于将名称与一组相关的类型,值和函数相关联,以将其与其他代码逻辑上分开。
mutable用于声明变量,即可以更改的值。
namespace用于将名称与一组相关的类型和模块相关联,以使其在逻辑上与其他代码分开。
new

用于声明,定义或调用可创建或可以创建对象的构造函数。

还用于通用参数约束,以指示类型必须具有特定的构造函数。

not实际上不是关键字,但是,不能将struct组合用作通用参数约束。
null

表示没有对象。

也用于通用参数约束。

of用于有区别的联合以指示值类别的类型,并用于委托和异常声明。
open用于使命名空间或模块的内容不加限制地可用。
or

与布尔条件一起用作布尔或运算符,等同于||。

override用于实现与基本版本不同的抽象或虚拟方法。
private限制只能通过当前对象才能访问。
public允许从类型外部访问成员。
rec用于表示函数是递归的。
return用于表示要提供作为计算表达式输出的值。
return!用于表示计算表达式,该计算表达式在被判断时提供包含的计算表达式的输出。
select在查询表达式中用于指定要提取的字段或列。
static用于表示可以在没有类型的情况下调用的方法或属性共享值。
struct

用于声明结构类型,也用于通用参数约束,用于模块定义中的OCaml兼容性。

then

用于条件表达式。

还用于在对象构建后产生副作用。

to在for循环中用于指示范围。
true用作布尔类型。
try用于引入可能会生成异常的代码块,与 with 一起使用,或者最终与一起使用。
type用于声明类,记录,结构,已区分的并集,枚举类型,度量单位或类型缩写。
upcast用于转换为继承链中更高的类型。
use用于代替需要调用Dispose释放资源的值。
use!用于代替let!异步工作流和其他计算表达式中需要需要调用Dispose以释放资源的值。
val用于声明成员的类型。
void指示.NET无效类型,与其他.NET语言进行互操作时使用。
when用于模式匹配时的布尔条件,并为通用类型参数引入约束子句。
while介绍了一个循环结构。
with与模式匹配表达式中的match关键字一起使用。
yield用于序列表达式以产生序列值。
yield!用于计算表达式中,将给定计算表达式的输出附加到包含该计算表达式的输出集合中。

一些保留的关键字来自OCaml语言-

无涯教程网

asrlandlor lsl lsr lxor mod sig

保留其他一些保留关键字,以供将来F#扩展之用。

atomicbreakcheckedcomponent constconstraintconstructor
continueeagereventexternalfixedfunctorinclude
method mixinobject parallelprocessprotectedpure
sealed tailcalltraitvirtual volatile

F#注释

F#提供两种类型的注释-

链接:https://www.learnfk.comhttps://www.learnfk.com/fsharp/fsharp-basic-syntax.html

来源:LearnFk无涯教程网

  • 单行注释以//符号开头。
  • 多行注释以(*开头,以*)结尾。

F#入口点

通常,对于F#程序,您没有任何明确的入口点,编译F#应用程序时,提供给编译器的最后一个文件将成为入口点,并且该文件中所有语句都将自上而下执行。

编写良好的程序应具有单个顶级语句,该语句将调用程序的主循环。

一个非常简约的F#程序,它将在屏幕上显示" Hello Learnfk"-

(* This is a comment *)
(* Sample Hello Learnfk program using F# *)
printfn "Hello Learnfk!"

编译并执行程序时,将产生以下输出-

Hello Learnfk!

祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)

技术教程推荐

说透敏捷 -〔宋宁〕

爱上跑步 -〔钱亮〕

Go 并发编程实战课 -〔晁岳攀(鸟窝)〕

说透数字化转型 -〔付晓岩〕

如何读懂一首诗 -〔王天博〕

零基础实战机器学习 -〔黄佳〕

全链路压测实战30讲 -〔高楼〕

李智慧 · 高并发架构实战课 -〔李智慧〕

Rust 语言从入门到实战 -〔唐刚〕

好记忆不如烂笔头。留下您的足迹吧 :)