在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;
但这会产生未知的语法错误:
答案 0 :(得分:1)
没有。 Reason是一种静态类型语言,列表是动态大小和同质的。它的使用非常有限,并且根本不清楚如何处理太少或太多的论点。如果你想传递一个列表,你应该接受一个列表并适当地处理它,如果需要的话,作为一个单独的函数。
你当然可以使用一个元组,它是固定大小和异构的,但我也没有看到用例,因为你可能只是直接调用函数。
对于JavaScript FFI,有bs.splice
属性,它允许您使用数组将可变数量的参数应用于js函数。但它需要使用数组 literal 调用,而不仅仅是任何数组。