无法解构函子(模块)
Unable to destructure Functor(Module)
这种语法会非常有用——有什么原因导致它不起作用吗?谢谢!
module Foo = {
let bar: string = "bar"
};
let bar = Foo.bar; /* works */
let { bar } = Foo; /* Unbound record field bar */
无法解构 OCaml/Reason 中的模块。
等效的 OCaml 代码在第 3 行产生语法错误
module Foo = struct let bar: string = "bar" end
let bar = Foo.bar
let struct bar end = Foo
File "", line 3, characters 4-10: Error: Syntax error
如果您可以将 Foo 中指定的 所有 值放入本地范围,那么您可以使用 open Foo
。
https://reasonml.github.io/try.html?reason=LYewJgrgNgpgBAMRCOBeOBvOsAucBGAhgE4BccAzjsQJYB2A5mnAERHEtwC+A3AFAgADjDqJk-AFIUAdFBAMAFOwCUQA
module Foo = { let bar: string = "bar" };
open Foo;
Js.log(bar)
如果您还想通过当前模块导出导出 Foo 中的所有定义,您可以 include Foo
。
https://reasonml.github.io/try.html?reason=LYewJgrgNgpgBAMRCOBeOBvOsAucBGAhgE4BccAzjsQJYB2A5mnAERHEtwC+A3AFD0AxlAhh4SEPwBSFAHRQQDABTsAlEA
module Foo = { let bar: string = "bar" };
include Foo;
Js.log(bar)
最接近的做法是这样的:
module Foo = {
let bar = "bar";
let baz = "baz";
};
let (bar, baz) = Foo.(bar, baz);
这种语法会非常有用——有什么原因导致它不起作用吗?谢谢!
module Foo = {
let bar: string = "bar"
};
let bar = Foo.bar; /* works */
let { bar } = Foo; /* Unbound record field bar */
无法解构 OCaml/Reason 中的模块。
等效的 OCaml 代码在第 3 行产生语法错误
module Foo = struct let bar: string = "bar" end
let bar = Foo.bar
let struct bar end = Foo
File "", line 3, characters 4-10: Error: Syntax error
如果您可以将 Foo 中指定的 所有 值放入本地范围,那么您可以使用 open Foo
。
https://reasonml.github.io/try.html?reason=LYewJgrgNgpgBAMRCOBeOBvOsAucBGAhgE4BccAzjsQJYB2A5mnAERHEtwC+A3AFAgADjDqJk-AFIUAdFBAMAFOwCUQA
module Foo = { let bar: string = "bar" };
open Foo;
Js.log(bar)
如果您还想通过当前模块导出导出 Foo 中的所有定义,您可以 include Foo
。
https://reasonml.github.io/try.html?reason=LYewJgrgNgpgBAMRCOBeOBvOsAucBGAhgE4BccAzjsQJYB2A5mnAERHEtwC+A3AFD0AxlAhh4SEPwBSFAHRQQDABTsAlEA
module Foo = { let bar: string = "bar" };
include Foo;
Js.log(bar)
最接近的做法是这样的:
module Foo = {
let bar = "bar";
let baz = "baz";
};
let (bar, baz) = Foo.(bar, baz);