首页 > 解决方案 > 圆括号、花括号

问题描述

我试图理解这段代码: https ://github.com/CameronAavik/AdventOfCode/blob/master/Challenges/2018/Day03.fs

但我找不到任何关于“let something (...) { ... } = ...”语法的信息,例如:

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

这是什么?让我想起了元组和解构,但也许不是这样。

谢谢

标签: f#

解决方案


它实际上是像元组一样解构,只是在这种情况下它是一条记录。

一个显着的区别是,虽然使用元组您必须匹配各个部分的确切数量和位置,但在解构记录时,您可以忽略此时不感兴趣的任何字段。

我曾经写过一篇关于 F# 中模式匹配/解构的不同方式的(非详尽的)博客文章;也许这有助于理解这里。


推荐阅读