问题标签 [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 投票
2 回答
123 浏览

c++ - 参数的默认值基于其他

我想实现这样的课程:

我想根据ia和ib计算ic的默认值,这里的代码在编译时会出错。

我想知道是否有办法得到这样的东西。

谢谢。

0 投票
3 回答
156575 浏览

go - Go 方法中的默认值

有没有办法在 Go 的函数中指定默认值?我试图在文档中找到它,但我找不到任何说明这甚至是可能的。

0 投票
3 回答
6206 浏览

c++ - 我可以将默认值传递给 std::string 的引用吗?

我想知道对于 s2 字符串,这段代码在 C++ 中是否合法。我想要一个默认参数,但传递一个引用并有一个空字符串作为默认值。是否会创建一个临时文件,并且引用将指向该临时文件,还是非法 C++?

0 投票
4 回答
9329 浏览

c++ - 如何在 C++ 中使用默认参数初始化“unsigned char *”?

我有一个带有以下签名的方法的类:

我需要设置""为默认值word,我该怎么做?

我尝试了明显的void print(unsigned char *word="");但我得到了以下错误:

既然我不能word用字符串文字进行初始化,我应该由谁来做呢?

0 投票
1 回答
1343 浏览

c++ - C:MSDN 说“可以为指向函数的指针提供默认参数”,但这是真的吗?

考虑这篇MSDN 文章(“默认参数”)和以下代码:

该文章声称“可以为指向函数的指针提供默认参数。例如:int (*pShowIntVal)( int i = 0 );”。据我了解,这意味着上面的代码应该可以成功编译。但是,它不会:

看来我误解了这篇文章。有什么意义,正确的解释是什么?

0 投票
2 回答
1235 浏览

matlab - Octave/matlab,常量定义的多个默认参数

我在通过先前定义的常量为 Octave/Matlab 中的函数定义默认参数时遇到问题。有人可以给我一个提示,为什么在下面的代码中test1(1)显示1and 100,而test2(1)error:testarg' undefined near line 1 column 36` 失败?太感谢了!

编辑:

请注意,论点的顺序很重要:

0 投票
1 回答
51 浏览

c++ - 重载选择期间不考虑默认参数的转换?

我试图为这个问题写一个简单的解决方案:数组衰减到指针和重载解析

很明显,在原文中,两个重载都具有相同的转换强度(精确匹配),因此首选非模板。事实上,如果我将另一个更改为模板,调用就会变得模棱两可:

所以我想引入一个用户定义的转换,这将比第二个重载的精确匹配更差。

但是g++ 说这仍然是模棱两可的。为什么默认参数中的自定义转换不影响重载排名?

0 投票
1 回答
1484 浏览

c++ - 函数的默认模板参数被忽略

这会产生编译器错误:

尽管将R模板参数默认初始化为A,但我必须提供第三个参数才能编译。为了使用默认模板参数,我还需要做些什么吗?

我正在使用 g++ v4.8.1。

0 投票
2 回答
641 浏览

c++ - 使用函数指针作为模板方法的默认参数时出错

当我尝试编译此代码时,我在 Visual Studio 2012 中收到以下编译器错误:

我的代码:

当我bar::foo进入全局命名空间时,我不再收到错误消息。谁能解释一下?

我已经编辑了上面的代码,以消除对成员函数和模板专业化的一些混淆。我还删除了 typedef,它给出了相同错误的更奇怪的版本:cannot convert 'void(_cdecl*)(void)' to 'void(_cdecl*)(void)'

0 投票
2 回答
275 浏览

resharper - 如果我没有明确提供可选参数,为什么 Resharper 会说“参数不匹配”?

我的项目使用 .Net 4.0 客户端。

下面的代码片段

在 Debug 和 Release 配置中编译并运行良好。但是,如果调试配置在 Visual Studio 中处于活动状态,Resharper 会在我传递给 Analytics 构造函数的参数下加红色下划线并显示“参数不匹配”。它没有提供解决问题的选项,并且由于它认为这是一个错误,而不是警告,所以它不提供抑制它。如果我添加第三个参数,true,那么它是完全高兴的。构造函数的第三个参数的默认值为 true,因此不必显式传递它。当然,这样做对我来说没有问题,但我对 Resharper 的行为感到困惑。

如果重要的话,Analytics 类来自 John Hatton 创建的 DesktopAnalytics 版本 1.0.1(使用 NuGet 下载)。

Resharper 版本是 7.1.3 完整版。