0

在 Javascript 中,您可以在函数调用中使用扩展语法,如下所示:

console.log(...[1,2,3]);

Reason 中是否有等价物?我尝试了以下方法:

let bound = (number, lower, upper) => {
  max(lower, min(upper, number));
};

let parameters = (1,0,20);

bound(...parameters) |> Js.log;

但这会产生未知的语法错误:

尝试原因片段

4

1 回答 1

1

没有。Reason 是一种静态类型语言,列表是动态大小和同质的。它的用途非常有限,而且它如何处理太少或太多的论点一点也不明显。如果你想传递一个列表,你应该只接受一个列表并适当地处理它,如果需要,作为一个单独的函数。

您当然可以改用一个元组,它是固定大小和异构的,但我也没有看到它的用例,因为您还不如直接调用该函数。

然而,对于 JavaScript FFI,有一个bs.splice属性,它允许您使用数组将可变数量的参数应用于 js 函数。但它需要用数组字面量来调用,而不仅仅是任何数组。

于 2017-11-09T09:09:05.647 回答