“let {record} = object”语法在 F# 中有什么作用?

Tho*_*mas 3 f#

使用以下示例:

type Person = {First:string; Last:string}
let alice = {First="Alice"; Last="Doe"}
let {First=first} = alice
Run Code Online (Sandbox Code Playgroud)

最后一个let到底做了什么?

Ree*_*sey 5

最后一个 let 绑定是一个带有模式匹配的绑定,特别是使用记录模式

这将创建一个名为的绑定first,它将从您的记录实例中提取名字。在这种情况下,first绑定到 value "Alice",并且在该范围内可用。

为了说明这一点,您可以在代码后添加以下行:printfn "%s" first,您将看到打印出“Alice”。

请注意,让绑定允许任何模式 - 规范是let identifier-or-pattern [: type] =expressionbody-expression,它允许您使用许多不同的模式。这在许多情况下很有用,例如,如果您有一个元组:

let t = (1, 2)
let (first, second) = t // Use a pattern to bind each tuple value by name
printfn "%i" second
Run Code Online (Sandbox Code Playgroud)