问题标签 [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.
python - 使用当前类实例的属性作为方法参数的默认值
可能重复:
参数的默认值作为实例方法的结果
虽然可以在 python 中为函数参数设置默认值:
似乎无法访问当前实例(self):
我的问题:
- 我无法访问当前实例来设置函数中的默认参数,这是真的吗?
- 如果不可能:原因是什么?是否可以想象这在未来的 python 版本中是可能的?
scala - Scala 的默认参数应该如何引用先前的位置参数?
Scala-lang 参考 5.5.1 和 6.6.1 给我的印象是默认参数可以引用之前评估过的参数:
但从实验看来,这样做的唯一方法是使用以下形式:
然后定义一个辅助构造函数或创建伴生类,以避免在创建时指定第二组括号。我真的不明白第二个构造函数是如何工作的,它看起来像一个柯里化函数,所以我可能猜想有必要first
独立于 评估second
,这是正确的吗?这种形式是必要的还是有一些语法糖我可以用来调整第一个构造函数来做我想做的事?
c# - 默认参数和泛型的方法解析问题
使用 .NET 4,我对编译器无法解析下面示例中的第一个方法调用感到困惑。
任何人都可以对此有所了解吗?我怀疑除了修改我的 API 以帮助编译器(如上所述)之外,我真的没有前进的道路Extensions3
,但如果有更简单/更好的方法,那么我很想听听。
python - Python 3:在 __init__ 中给出一个命令来设置 self 的属性,需要使用“self”?
我知道问题标题听起来很奇怪,但由于英语不是我的第一语言,我发现很难正式化。但是,我也许可以用更多的文字来解释它。
问题是,例如,我正在尝试创建一个名为“Foo”的类。
现在所有 Foo 类的实例都有function
属性,它只包含一个可以通过实例执行的函数。此外,还有一个parameters
属性、一个元组或一个列表,其中包含在调用时应该使用的参数function
。
这似乎工作正常,但是,问题是,我想给它一个默认值,以更改实例的属性。我基本上想做以下事情:
这样做会提高NameError: name 'self' is not defined
. 我应该如何实现它才能让它工作,或者我应该想出一个解决方法?
c++ - 为什么成员变量不能用作参数的默认值?
可能重复:
非静态成员作为非静态成员函数的默认参数
如果我错了,请纠正我,但我认为默认参数的工作方式是这样的:
当编译器看到函数调用时,它开始将参数压入堆栈。当它用完参数时,它将开始将默认值压入堆栈,直到所有必需的参数都被填充(我知道这是一种简化,因为参数实际上是从右向左压入的,所以它将以默认值开始,但是想法是一样的)。
如果这是真的,为什么不能将成员变量用作默认值?在我看来,由于编译器像往常一样在调用站点推送它们,它应该能够很好地解决它们!
编辑由于答案似乎我的问题被误解了,让我澄清一下。我知道情况就是这样,我知道该语言允许什么和不允许什么。我的问题是为什么语言设计者选择不允许这样做,因为它似乎很自然地起作用。
c# - 将默认参数约束为编译时常量的基本原理
我想知道为什么这不会编译:
与消息
“'someGuid' 的默认参数值必须是编译时常量”
而重载的版本将编译:
换句话说,为什么编译器不把第一种情况翻译成第二种呢?这种设计选择背后的原因是什么?
c# - 默认参数说明符在 C# 上是不允许的错误
当我构建我的项目时,VC# 说不允许使用默认参数说明符。它把我带到了这段代码:
我的错误可能是什么?
c++ - 在 C++ 中具有传递引用的默认参数
我有许多引用typedef
'd 数据类型的函数,如下所示:
我还有一个处理函数的映射,使用boost::function
如下定义:
我定义了这一点,以便使用我正在使用的 >100 个处理函数,我可以简单地读取一个键并调用handlers[key](bytes, d);
并让我的函数执行,我的不同数据类型只需要 3 个 if/else(知道我需要的数据类型是另一个我不会涉及的问题。它与问题无关)。这按预期工作。
我的问题是少数函数不使用字典,并且在处理程序之外的上下文中很有用(例如,准备字节流并将其转换为 long int 的函数)。为了从我没有预定义字典的上下文中调用此函数,我要么必须创建一个从未使用过的无用字典:
或者我必须 pverride 函数:
当我尝试使用默认参数(例如NULL
空字典)定义它时,出现编译器错误:
有没有办法做我想做的事,而不必完全重写我的代码来传递指针而不是引用?
c++ - c ++浮点数组作为默认参数
我对 c++ 很陌生,但我无法使它正常工作。抱歉,但我一直使用的语言不能帮助我从内存指针的角度思考,所以也许这是一个愚蠢的问题。
我想将浮点数组作为默认参数传递。像这样:
我尝试过一些不同的语法,但我总是在一些错误的前面,比如
编辑(但有内存泄漏):
好的,这就是我以这种方式解决的这个答案:
一些优点或缺点?
编辑 2
查看接受的答案
c++ - 模板函数作为默认模板参数
我的班级声明开始如下:
compareHorizontal
模板函数在哪里。当我尝试编译时,clang 吐出
(以及同一行上的许多其他错误)。
如果我只是删除默认模板参数,而其他所有内容都保持不变,那么它编译得很好。所以我想知道,如果可能的话,我将如何使用函数模板作为默认参数?或者我最好只用一个operator()
调用compareHorizontal
并使用它来创建一个仿函数类?