圆括号,花括号

时间:2019-05-06 20:51:00

标签: f#

我正在尝试理解以下代码: https://github.com/CameronAavik/AdventOfCode/blob/master/Challenges/2018/Day03.fs

但是我找不到有关此“放点(...){...} = ...”语法的任何信息,例如:

let processBoundary (prevY, claimSet, total) {cursor=cursor; isAdding=isAdding; data=(top, height)} = ...

这是什么?使我想起元组和破坏性结构,但事实并非如此。

谢谢

1 个答案:

答案 0 :(得分:5)

它实际上是在像元组那样进行破坏,只是在这种情况下是记录。

一个显着的区别是,在使用元组时,您必须匹配各个部分的确切编号和位置,而在破坏记录时,您可以省去那时不感兴趣的任何字段。 / p>

我曾经用F#中的一种不同的模式匹配/重构方式写过blog post。也许对理解这里很有帮助。