问题标签 [default-parameters]

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 回答
169 浏览

scala - 使用参数默认值进行类型擦除

以下不编译:

编译器说:

如果将dof :Int = 0更改为dof: Int,则示例编译并按预期工作。

无论代码是否有效,默认参数值的存在与否都会改变,这似乎很难看。

为什么这真的有意义的解释是什么?

0 投票
1 回答
108 浏览

c++ - 构造函数默认参数

构造函数:

创建对象:

上面的代码显示错误:重载 'A()' 的调用不明确

0 投票
1 回答
510 浏览

c++ - 模板函数默认参数和类型推断

C++

这些模板函数都没有

允许任何具有以下零参数调用的编译:

foo尽管使用任何值调用都有效(例如foo(2))。

nullptr有一个特定的类型,即std::nullptr_t,所以我认为默认参数在#1 中不需要额外的类型限定。默认参数的类型在#2 和#3 中明确提供,所以我认为那里没有任何类型歧义。

这里有什么问题?是否有适当的方法来使用模板函数执行默认参数?

0 投票
1 回答
83 浏览

python - 为什么在这种情况下局部变量会被“记住”?

这在第一次调用时可以正常工作,但是局部变量li不会被遗忘,新值只是附加到旧值 - 而不是字符串,正如函数名称所暗示的那样,被拆分到它自己的列表中。是的,如果我在没有默认参数的情况下定义我的函数,而是在稍后的调用中说它是空列表,一切都很好,但我很好奇上面这段代码到底发生了什么。

0 投票
1 回答
69 浏览

python - python函数声明中默认参数的行为?

我从这篇文章的答案中得到了这个问题。

考虑这段代码

输出是:

正如我可以推断的那样,字典有一个“全局”引用。

作为默认参数传递给函数的内容在命名空间中的某处是持久的。

它在再次调用该函数时共享。但是我怎么知道当前的情况dict。我可以有一个dict函数的外部并将其传递dict给函数以了解它的内容dict

但我的问题是默认参数的dict存在位置(在命名空间中)以及如何访问它。这是什么时候dict创建的?第一次调用函数或def执行语句时?

顺便说一句,打印locals()显示 dict 是本地函数

谢谢

0 投票
1 回答
134 浏览

c++ - MSVC12 中不允许默认参数中的模板类实例化?

我刚刚在我们的项目中提取了以下问题。下面的代码用 g++ 编译得很好

但是,Visual Studio 编译器(VC12,但我也认为所有其他编译器)不理解在foo的 c'tor的默认参数中,调用bar的 c'tor,它将向量的实例作为参数. 这会导致在此表达式之后声明的每个类/结构出现错误:

我不想讨论 c'tor 的软件设计,但这是编译器问题还是标准 C++ 中不允许,而 g++ 对此并不严格?

首先,我认为默认参数中的模板实例化可能不允许或默认参数中嵌套 c'tors。但是,如果我使用向量的另一个 c'tor:

它用 MSVC 编译。我只是不明白为什么上版本不应该编译?对此有什么想法吗?

0 投票
1 回答
228 浏览

c# - 覆盖 C# 中的默认参数

复制真的很简单,输出很奇怪;

预期输出为“bbb bbb” 实际输出为“aaa bbb”

有没有人对这种行为有任何 MSDN 解释?我找不到任何东西。

0 投票
3 回答
62 浏览

c++ - C ++中默认参数类型的限制是什么

我可以知道 Type2 作为接受默认值的参数有什么限制吗?我认为 type2 的 value2 应该在编译时确定。例如,一个整数。这个对吗?

0 投票
0 回答
46 浏览

python - 我如何区分python中的默认参数方法

最近,我在学习python。我在读这本书时遇到了一个问题,名为The_Python_Tutorial帮帮我,请。这是我的问题:

表明

所以我换了另一种方式

它只是显示

它是怎么发生的?太奇怪了。我只想知道为什么这两种方法之间存在差异,有人可以解释它。谢谢。

0 投票
2 回答
2726 浏览

python - 在python的函数中使用可变参数传递默认参数

当我尝试以下操作时,我function definition本身就出错了。

我正在尝试为参数提供默认值pad

但是后来,我尝试了这个并且它有效(出于错误的原因):

它不是打印应该是tuple的。seq([1,2,3],[4,5,6])