问题标签 [optional-arguments]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
791 浏览

python - python argparse, search for specific file if option is omitted

I have an argument for input file and its easy to handle it with argparse

This parameter is optional but if it is omitted I still need to get this input file by searching current directory. And if there is more than one or none file with .al extensions I will raise the error, otherwise open file I found.

Is there anyway to perform this with argparse, with default or action parameters maybe. If I do the search before parsing arguments and there are an exception situation I still can not raise it because needed file may be provided by command line arguments. I thought of performing action if parser did not meet needed parameter, but can not find out how to do it with argparse.

0 投票
1 回答
1760 浏览

module - 如果可选参数不存在,我们可以避免创建局部变量吗?

我对PRESENTFortran 95 的语句有疑问。目前我正在使用 Silverfrost 的 Plato 和他们的 FTN95 编译器(在“Release Win32”模式下)。我想做的是创建一个 subroutine SUB(a,b),其中b是一个可选变量。到目前为止一切顺利,但是当我尝试为bwith赋予新值时出现问题if (.NOT. present(b)) b=0。这是代码:

有没有摆脱这种情况的优雅方法,或者我真的需要创建另一个变量,b_aux例如,然后使用以下代码?:

0 投票
1 回答
6361 浏览

vba - 如何在函数中指定多个可选参数而不考虑它们的顺序

下面的示例必须按顺序给出可选参数;因此 ShowHeaders 必须先于 ValueAdd 等等。如果我想指定 ValueAdd,我*必须*指定 ShowHeaders:

我希望能够指定一个或多个(相对)大的可选参数列表:1)但不是按顺序,2)不一定全部。

对于 1)我在想,也许可以列出一个通用的参数列表,例如,而不是上面做的:

然后随后检查 Arg1 的最左边部分是否 = "Headers=" 或 "Sprd=" 等等,然后对 Arg2 执行相同的操作。这很好,但似乎效率不高,我打算创建具有 > 10 个可选参数的 UDF。上面的解决方案也可以解决 2) 但我只是觉得它的编码不是很好。

2)我知道我们可以使用

但这并不能真正解决我们指定函数的顺序。

0 投票
5 回答
1247 浏览

php - 如何避免 php 函数中位置参数的缺点?

我有一些 php 函数,它们有大量带有默认值的参数。像这样的东西:

我想知道我能做些什么来避免立场争论的恐怖。是否可以仅使用参数集的一个子集并按名称调用该函数?如:

谢谢!

0 投票
4 回答
2749 浏览

java - Android Java函数参数中的“...”和“[]”有什么区别?

我看到了将数组参数放入这样的函数的示例:

我想这是说“期望无限数量的字符串”的一种方式。

但它与 有何不同String[] strings

何时/为什么/如何使用它(三点符号)?

0 投票
2 回答
5096 浏览

matlab - 如何将 MATLAB 的 inputParser 与可选的字符串输入一起使用?文档说“使用验证功能”,但不清楚如何做到这一点

我有一个 MATLAB 文件,其中包含一个名为sandbox. 该函数又包含两个嵌套函数mysummyprod,它们在功能和允许的参数上是相同的,除了一个@sum在内部使用而另一个在@prod内部使用。我的目标是创建一个在两者中都使用的包装函数,mysummyprod负责所有的验证和输入解析。这个函数被称为applyFunc

这就是棘手的地方。mysummyprod两种形式:

  1. mysum(v)返回sum(v, 1)
  2. mysum(v, 'imag')返回sum(v, 1) + 1i

任何其他输入组合都应引发错误。

我无法inputParser解析这些不同的输入组合,特别是可选的字符串输入。这是代码:

导致问题的行是这一行(如上面的代码中标记的那样):

inputParser 的文档说:

对于可选字符串输入,请指定验证函数。如果没有验证函数,输入解析器会将有效的字符串输入解释为无效的参数名称并引发错误。

不幸的是,我不知道如何做到这一点。我缺少什么简单的东西还是什么?如果'imag'根本没有传递参数(如sand的赋值p),代码可以正常工作,但如果我传递它,我会收到此错误:

有什么帮助吗?

0 投票
1 回答
1393 浏览

r - 缺少参数的方法分派

在给定 S4 方法中将参数值显式分派给后续 S4 方法时,如何避免经典Error: argument "<argname>" is missing, with no default错误(参见下面的示例) 。


例子

大图

  • 有一个foo()调用 method的方法bar()
  • 这两种方法都依赖于参数xy.
  • 方法以显式foo()方式分派参数xy到:.bar()bar(x=x, y=y)

现在,这里的关键点是我不想foo()关心传递给的任何或所有参数bar()是否丢失。

通用方法

方法bar()

方法foo()

如上所述,我不想foo()关心传递给的任何或所有参数bar()是否丢失。bar()它只是应该以明确的方式传递所有内容:

方法 def 乍一看可能看起来不错,但如果调用它xy缺少它,它就会失败:

解决方法

到目前为止,这是我能想到的唯一解决方法:

if ... else它有效,但由于所有的陈述,我真的不喜欢它。整个“if-else 逻辑”已经包含在bar(). 毕竟,这就是首先拥有一个方法调度器的全部意义,对吧?因此,我会将这些陈述视为“不受欢迎的工作”,我正在寻找更好的方法。

当然,可以求助于将NULL所有“关键”参数用作默认值,但我想尽可能多地依赖missing()而不是在我的函数中。is.null()

0 投票
3 回答
3559 浏览

c# - 在 C# 中使用可选参数作为对象

我有这个代码:

如果 request 是null,我想创建一个新的GetFilesRequest,因为在构造函数中我这样做是为了创建类的默认参数:

所以我在想:

但我收到了这个警告:

0 投票
1 回答
578 浏览

matlab - 输入解析器相互依赖的可选参数

在以下函数中,我尝试让 Pt 位于可选输入参数上。如果未指定 Pt,则需要计算其他可选参数(该部分有效)。但是当我指定它时:

我收到以下错误:

'Pt' 不是公认的参数。有关有效名称-值对参数的列表,请参阅此函数的文档。

函数代码:

非常感谢你的帮助!

0 投票
3 回答
32 浏览

c# - 指定命名参数

我有一个具有以下签名的函数

但是当我尝试调用它并设置它时,我得到一个无效的参数传递,我尝试了以下方法。我究竟做错了什么?

编辑:错误:没有重载需要 4 个参数

*这是 /facepalm 的情况,我错过了明显的