标签: default-value

非静态成员作为非静态成员函数的默认参数

struct X
{
   X():mem(42){}
   void f(int param = mem) //ERROR
   {
      //do something
   }
private: 
   int mem;
};
Run Code Online (Sandbox Code Playgroud)

任何人都可以给我一个原因,为什么这在C++中是非法的?!也就是说,我知道这是一个错误,我知道错误意味着什么,我只是无法理解为什么这是非法的!

c++ member-functions default-value

28
推荐指数
3
解决办法
4948
查看次数

使用带有fallthrough的开关来处理Javascript中的默认参数是一个好主意吗?

我最近了解到,您可以使用带有fallthrough的简洁switch语句在Javascript中设置默认参数值:

function myFunc(arg1, arg2, arg3) {
    //replace unpassed arguments with their defaults:
    switch (arguments.length) {
        case 0 : arg1 = "default1";
        case 1 : arg2 = "default2";
        case 2 : arg3 = "default3";
    }
}
Run Code Online (Sandbox Code Playgroud)

我已经成长为喜欢它,因为它不仅非常短,而且它也基于实际传递的参数而工作,而不依赖于一个特殊的值类(null,falsy等)作为占位符,就像在更传统的版本:

function myFunc(arg1, arg2, arg3){
    //replace falsy arguments with their defaults:
    arg1 = arg1 || "default1";
    arg2 = arg2 || "default2";
    arg3 = arg3 || "default3";
}
Run Code Online (Sandbox Code Playgroud)

我看到使用开关的版本之后我的初衷是我应该考虑在||版本上"默认"使用它.

开关虽然不会长得多,但它具有更加"稳健"的优点,因为它不关心参数的类型.在一般情况下,每当我必须使用默认参数创建函数时,不必担心所有伪值('',0,null,false ...)会发生什么,这听起来是个好主意.

然后,我会保留arg = arg || x实际情况,我想检查真实性,而不是将其重新用作参数默认的一般规则.

但是,当我进行代码搜索时,我发现这种模式的例子很少,所以我不得不戴上我的怀疑帽.为什么我没有找到这个成语的更多例子? …

javascript default-value argument-passing

28
推荐指数
2
解决办法
1114
查看次数

为什么在提交对象之前SQLAlchemy默认列值不可用?

最近我发现SQLAlchemy的Column默认不起作用,因为我期望它:

>>> Base = declarative_base()
>>> class TestModel(Base):
    ...     __tablename__ = 'tmodel'
...     id = sa.Column(sa.Integer, primary_key=True)
...     foo = sa.Column(sa.Integer, default=0)
...    
>>> tmodel_instance = TestModel()
>>> print tmodel_instance.foo
None
>>> session.add(tmodel_instance)
>>> print tmodel_instance.foo
None
>>> session.commit()
>>> print tmodel_instance.foo
0
Run Code Online (Sandbox Code Playgroud)

我希望在对象实例化之后tmodel_instance.foo立即相等0,但似乎默认值仅在执行INSERT命令时使用,它确实让我感到困惑.为什么一个人更喜欢 default结束server_default?我如何实现我想要的目标?我应该指定所有默认参数__init__吗?这似乎是代码重复:更改默认值我必须将其更改两次并保持这些值相等 - 是否有某种方法可以避免这种情况?

python sqlalchemy default-value

28
推荐指数
3
解决办法
6537
查看次数

数组中成员的默认值是多少?

我实例化一个这样的数组:

int array[] = new int[4];
Run Code Online (Sandbox Code Playgroud)

这四个成员的默认值是什么?它是null,0还是不存在?

c# arrays member default-value

28
推荐指数
3
解决办法
4万
查看次数

Kotlin:你能为varargs使用命名参数吗?

例如,您可能具有复杂签名和varargs的功能:

fun complicated(easy: Boolean = false, hard: Boolean = true, vararg numbers: Int)
Run Code Online (Sandbox Code Playgroud)

你应该能够像这样调用这个函数是有道理的:

complicated(numbers = 1, 2, 3, 4, 5)
Run Code Online (Sandbox Code Playgroud)

不幸的是,编译器不允许这样做.

是否可以为varargs使用命名参数?有没有聪明的解决方法?

function default-value variadic-functions named-parameters kotlin

28
推荐指数
3
解决办法
8406
查看次数

std :: map内置类型的默认值

最近,我被std :: map operator []函数搞糊涂了.在MSDN库中,它说:"如果找不到参数键值,那么它将与数据类型的默认值一起插入." 我试图更准确地搜索这个问题的解释.例如: std :: map default value 在这个页面中,Michael Anderson说"默认值是由默认构造函数(零参数构造函数)构造的".

现在我的任务是:"内置类型的默认值是什么?".编译器是否相关?或者c ++标准委员会是否有这个问题的标准?

我在visual studio 2008上对"int"类型进行了测试,发现"int"类型的构造值为0.

c++ stdmap default-value

27
推荐指数
4
解决办法
2万
查看次数

<h:selectOneMenu>中<f:selectItem>的默认选择

如何使默认选项<f:selectItem>之内<h:selectOneMenu>

这是必需的,当加载页面时,已经选择了特定的"20"下拉项.

  <h:selectOneMenu value="#{fileSearchCriteriaOut.recordsPerPage}"  >            
               <f:selectItem itemLabel="5" itemValue="5" />
               <f:selectItem itemLabel="10" itemValue="10" />
               <f:selectItem itemLabel="20" itemValue="20" selected="true"/>
  </h:selectOneMenu>
Run Code Online (Sandbox Code Playgroud)

这四个不起作用:

<f:selectItem itemLabel="20" selected="true"/>
<f:selectItem itemLabel="20" selected="selected"/>
<f:selectItem itemLabel="20" checked="checked"/>
<f:selectItem itemLabel="20" checked="true"/>
Run Code Online (Sandbox Code Playgroud)

jsf default-value selectonemenu

27
推荐指数
2
解决办法
7万
查看次数

PostgreSQL - 根据另一个单元格值设置默认单元格值

如果我有一个列说column a任何给定的值,并且我希望另一列column b 具有default value根据值的值column a

换句话说:
如果column a = 'peter'那么column b default value = 'doctor'.

postgresql triggers database-design default-value postgresql-9.2

27
推荐指数
2
解决办法
1万
查看次数

如何设置TextBox空字符串的默认值而不是null

我可能已经过时了,但我坚持的一个原则是尽可能避免空值.

但是我发现,对于一个强类型视图,用户输入我想要保存的对象的属性,如果没有输入某些字段,则将它们指定为null.

然后,当您尝试保存更改时,验证将失败.

因此,不是将每个属性设置为空字符串,而是如何自动将表单上的每个TextBox设置为默认为空字符串而不是null?

asp.net-mvc null textbox model default-value

26
推荐指数
1
解决办法
2万
查看次数

将高位图y轴最小值设置为0,除非存在负数据

我在使用高级图表时遇到问题,我在JSON调用中生成了许多不同的图表.

对于大多数这些图表,我需要将最小y轴值设置为0,但是有几种情况需要显示负值.如果数据中没有负值,我怎么能告诉highcharts最小y轴值为0,这是否可能?

谢谢

axis minimum default-value highcharts

26
推荐指数
5
解决办法
2万
查看次数