问题标签 [default-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 回答
418 浏览

c++ - 使用默认参数转发参考?

我在试图弄清楚如何为转发引用(以前被 Scott Meyers称为通用引用)指定默认参数时遇到了麻烦。

这是尝试做我想做的事情的代码示例:

也可在 Coliru 上获得

通过错误处理,您发现可以通过默认模板参数使其工作,然后在其后默认构造参数:

也在 Coliru 上

这是处理这个问题的“正确”方式吗?我应该使用什么语法?是否有多种方法可以达到“默认转发引用”的预期效果?我应该以哪种方式写这个?还要记住,稍后我将在代码上撒上大量的 SFINAE,所以我更喜欢不包括编写多个重载的东西。

0 投票
1 回答
150 浏览

scala - 依赖方法类型与默认参数冲突

在玩scala的依赖方法类型时,我遇到了与默认方法参数的冲突:

消息是:

如果我从方法定义和实现中删除具有默认值的参数,则示例编译成功。我究竟做错了什么?它是一个错误吗?

PS 我正在使用 Scala 2.11.4

0 投票
1 回答
231 浏览

c++ - 重新声明时替换函数默认参数

为什么以下代码格式正确:

演示

但以下

演示

格式不正确。我试图在 中查找,N4296::8.3.6 [dcl.fct.default]我发现以下示例:

但是clang似乎不是那样的。

演示

那么,这是一个实施问题吗?从形式上讲,所有这些例子都应该是可以接受的,不是吗?

0 投票
1 回答
2089 浏览

c++ - c++ 默认函数参数不起作用

我有一个需要默认参数的函数:

这是功能:

错误:

我不明白我做错了什么。

0 投票
1 回答
68 浏览

c++ - 为什么我们不能从具有默认参数的函数中调用函数?

该程序:

演示

我预计最终foo(5)会被调用。相反,以下程序运行良好:

演示

你能解释一下这个区别吗?

0 投票
2 回答
236 浏览

python - 如何将 functools.partial 与 os.path.join 一起使用?

有一个路径 + 文件名的列表,都以相同的root_dir. 如何使用部分?

试图

但是,这会引发错误:

TypeError:join() 为关键字参数“路径”获取了多个值


显然我可以写一个新函数:


但是我想使用partial. 任何线索如何?

0 投票
2 回答
123 浏览

python - Making default output file dependent on input file

I'm trying to make a python script that converts one file type to another, and I'd like to have the option to specify an output file, but a default to just change the extension on the default file name.

Eg: I want convert('foo.gb') to output foo.faa, but convert('foo.gb', 'bar.faa') to output bar.faa

The way I've implemented this is:

So, it checks to see if an output has been specified, and if it hasn't, uses regular expressions to change the input file name to have the right extension. This code works, but seems somewhat sloppy, or at the very least not very readable. It would also break if the file name has a . anywhere other than before the extension, which it might sometimes have.

Is there a better way to do this?

0 投票
2 回答
123 浏览

php - 如何在 PHP 中使函数参数可选?

假设以下是我的函数定义:

在上面的函数$val中是一个数组,它作为参数传递给它。

现在我想在不传递任何参数时调用上述函数。那我该怎么称呼它?

0 投票
4 回答
117 浏览

python - 当参数在 Python 中指定为 None 时,让函数使用其默认值作为参数的好方法是什么?

假设我有一个函数(称为function),它接受一个默认值为Truelike的布尔参数def function(argument1 = True)

现在假设我想使用这个函数,使用另一个函数 ( resolveArg) 的输出来指定它的参数,该函数检查现有基础设施中的参数。此resolveArg方法通常使用,如果它可以找到发往给定函数(例如function)的参数值,则将函数参数设置为它,否则将参数设置为None

function如果它的参数被None这个其他函数( )设置为,我怎样才能使用它的参数的默认值resolveArg

0 投票
1 回答
1149 浏览

c++ - GCC 中默认参数段错误的 std::map 参数和空括号初始化器

问题

我收到用户报告我开发的库中的段错误的错误报告。

错误代码的最小示例是:

当使用 GCC 编译时(我测试了 4.8.2 和 4.7.3),它会正确打印0为容器的大小,但在循环内会出现段错误(根本不应该执行)。

解决方法

但是,我可以通过声明更改为:

也复制map作品:

将参数更改为const std::map<...>&也可以。

GCC 4.9.1 工作正常。

Clang 也可以很好地编译和运行代码。(即使使用与失败 gcc 4.8.2 相同的 libstdc++)

工作示例:http ://coliru.stacked-crooked.com/a/eb64a7053f542efd

问题

地图在函数内部绝对不是有效状态(详情如下)。它看起来像一个 GCC(或 libstdc++)错误,但我想确保我没有在这里犯一些愚蠢的错误。很难相信这样的错误会在 gcc 中至少保留 2 个主要版本。

所以我的问题是:初始化默认std::map参数的方式是错误的(和我的代码中的错误)还是stdlibc++(或gcc)中的错误?

我不是在寻找解决方法(因为我知道如何使代码工作)当集成到应用程序中时,有问题的代码在某些计算机上执行良好(即使使用 gcc 4.8.2 编译)在某些计算机上却没有。

细节

我使用以下方法编译它:

来自 gdb 的回溯:

/tmp/c.cpp:9 是与std::cout << ...

ASAN 报告:

这似乎nullptr - 8

valgrind 显示:

查看地图的内部状态表明代码确实必须失败:

std::map::begin()在 libstdc++ 中返回值

从它的内部表示,std::map::end()返回:

gdb 显示:

因此 和 的值begin()与标准规定的空值end()不同(begin()为 nullptr)std::map