【发布时间】:2012-06-01 02:45:44
【问题描述】:
我想编写一个自定义函数,它有一些强制参数,但也可以接受一些可选参数。我找不到任何关于此的文档。有人知道吗?和 Javascript 类似吗?
【问题讨论】:
标签: javascript google-apps-script google-sheets custom-function
我想编写一个自定义函数,它有一些强制参数,但也可以接受一些可选参数。我找不到任何关于此的文档。有人知道吗?和 Javascript 类似吗?
【问题讨论】:
标签: javascript google-apps-script google-sheets custom-function
自定义函数没有必填字段和可选字段的概念,但您可以使用如下逻辑来模拟该行为:
function foo(arg1, opt_arg2) {
if (arg1 == null) {
throw 'arg1 required';
}
return 'foo';
}
对可选参数使用前缀“opt_”是惯例,但这不是必需的。
【讨论】:
if( null == arg1 ),因为当您不小心遗漏了一个 = 时,这不会被误认为是作业。 if( null = arg1 ) 会抛出一个错误,你会立即修复它。 if( arg1 = null ) 会给你带来令人困惑的结果,直到你找到丢失的 =
是的,它是 JavaScript(对 JsDoc 的支持也有限),所以你可以有一个带有默认值的可选参数:
/**
* This is myFunction.
* @param {number} arg1 - Some number.
* @param {string} arg2 - Some string.
* @param {number} arg3 - [OPTIONAL] Additional numbers or ranges to add to value1.
* @customFunction
**/
function myFunction(arg1, arg2, arg3=false) {
return arg3;
}
然后您可以使用以下任一方法在电子表格中调用它:
=myFunction(1, "somestring", true)
或者不带可选参数:
=myFunction(1, "somestring")
由于 JavaScript 动态处理参数列表。
【讨论】: