【问题标题】:In Apps Script, How to include optional arguments in custom functions在 Apps 脚本中,如何在自定义函数中包含可选参数
【发布时间】:2012-06-01 02:45:44
【问题描述】:

我想编写一个自定义函数,它有一些强制参数,但也可以接受一些可选参数。我找不到任何关于此的文档。有人知道吗?和 Javascript 类似吗?

【问题讨论】:

    标签: javascript google-apps-script google-sheets custom-function


    【解决方案1】:

    自定义函数没有必填字段和可选字段的概念,但您可以使用如下逻辑来模拟该行为:

    function foo(arg1, opt_arg2) {
      if (arg1 == null) {
        throw 'arg1 required';
      }
      return 'foo';
    }
    

    对可选参数使用前缀“opt_”是惯例,但这不是必需的。

    【讨论】:

    • 更好的编码约定:if( null == arg1 ),因为当您不小心遗漏了一个 = 时,这不会被误认为是作业。 if( null = arg1 ) 会抛出一个错误,你会立即修复它。 if( arg1 = null ) 会给你带来令人困惑的结果,直到你找到丢失的 =
    【解决方案2】:

    是的,它是 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 动态处理参数列表。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-05-07
    • 1970-01-01
    • 2012-09-15
    • 1970-01-01
    • 1970-01-01
    • 2020-12-13
    • 1970-01-01
    相关资源
    最近更新 更多