📅  最后修改于: 2023-12-03 15:30:52.460000             🧑  作者: Mango
F# 语言中的表达式是计算机可以计算的值或结果。 F# 所用的大多数控制结构本身都是表达式,这意味着它们返回值并且可以用于其他表达式中。在F#中,表达式使用 空格 和 分号(;)进行分隔,而不是用逗号或括号。
在 F# 中,我们常常会使用 if/then/else 来测试条件。 if 表达式在其他语言中基本等同于 if/else 语句。如果进行测试的条件为真,则执行 if 代码块。否则,执行 else 代码块。举例来说,以下代码将测试 x 变量的值,如果它大于 10,则输出 "x is greater than 10",否则输出 "x is less than or equal to 10"。
let x = 12
if x > 10 then
printfn "x is greater than 10"
else
printfn "x is less than or equal to 10"
输出:
x is greater than 10
除了 if/then/else,我们还可以使用 match/with 表达式。match 生成一个模式匹配,而该模式与给定的值进行匹配,并在匹配到值时执行相关代码。with 关键字后跟要执行的代码块。举例来说,以下代码将测试 x 变量的值,如果它是 1,则输出 "x is 1",如果它是 2,则输出 "x is 2",否则输出 "x doesn't match any pattern"。
let x = 1
match x with
| 1 -> printfn "x is 1"
| 2 -> printfn "x is 2"
| _ -> printfn "x doesn't match any pattern"
输出:
x is 1
另一个常见的控制结构是 while 循环。在 F# 中,while 循环与其他语言中的 while 循环类似,只不过 while 生成一个表达式。当条件为 true 时循环体中的代码块将被执行。以下是一个计算从 1 到 5 的和的示例:
let mutable sum = 0
let mutable i = 1
while i <= 5 do
sum <- sum + i
i <- i + 1
printfn "sum is %d" sum
输出:
sum is 15
最后,F# 还提供了 for 循环来遍历集合。 for 循环基本上类似于一个 foreach 循环,允许我们在集合上执行操作。以下是一个将列表中的所有元素加倍的简单示例:
let lst = [1; 2; 3; 4; 5]
for i in lst do
printfn "%d" (i * 2)
输出:
2
4
6
8
10