我正在尝试学习ReasonML,并按照bs-json的示例,我们可以将原始json解码为如下类型:
type point = {
x: float,
y: float
};
module Decode = {
let point = json =>
Json.Decode.{
x: json |> field("x", float),
y: json |> field("y", float)
};
}
我对这个Json.Decode.{ ... }
是什么感到困惑。我知道我们可以使用.()
点括号将作用域打开到模块中,但是我以前从未见过这个点花括号。
答案 0 :(得分:1)
含义几乎相同,Json.Decode
在{}
范围内打开,该范围像往常一样定义了一条记录。本质上只是Json.Decode.({ .. })
的简写。
编辑:我刚刚在the example下面的bs-json
的自述文件中添加了一条注释,以解释这种语法。