繁体   English   中英

'let {record} = object' 语法在 F# 中实现了什么?

[英]What does the 'let {record} = object' syntax achive in F#?

用下面的例子:

type Person = {First:string; Last:string}
let alice = {First="Alice"; Last="Doe"}
let {First=first} = alice

最后一个到底做什么?

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

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

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

请注意, let 绑定允许任何模式 - 规范是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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM