圆括号,花括号

bar*_*rii 4 f#

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

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

let processBoundary (prevY, claimSet, total) {cursor=cursor; isAdding=isAdding; data=(top, height)} = ...
Run Code Online (Sandbox Code Playgroud)

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

谢谢

Tea*_*Dev 5

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

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

我曾经写过一篇(非详尽的)博客文章,介绍有关F#中模式匹配/解构的不同方法。也许这对了解这里很有帮助。