我有以下自动属性
[DefaultValue(true)]
public bool RetrieveAllInfo { get; set; }
Run Code Online (Sandbox Code Playgroud)
当我尝试在代码中使用它时我发现默认的false假设是因为我认为这是bool变量的默认值,有没有人知道什么是错的!?
我有一个简单的密度函数如下:
dpower <- function(x, b, r){
if ((b <= 0 | r <= 0))
return("Wrong parameters entered!")
else{
density.temp <- (r/b)*(x/b)^(r - 1)
density.temp[which(x >= b | x <= 0)] <- NA
return(density.temp)
}
}
Run Code Online (Sandbox Code Playgroud)
此函数返回与指定分布的值x对应的密度,参数为b和r.我想在x上设置默认值,如果用户没有指定x,则默认值通过.我们可以简单地设置dpower < - function(x = x.default,b,r)......但是,我的默认值取决于r和b.我怎样才能做到这一点?假设x的默认值是:
seq(from = 0.05, to = b, by = 0.001)
Run Code Online (Sandbox Code Playgroud)
谢谢你的帮助,
考虑这个例子:
var Field = React.createClass({
render: function () {
// never renders new value...
return (
<div>
<input type="text" defaultValue={this.props.value || ''} />
</div>
);
}
});
var App = React.createClass({
getInitialState: function () {
return {value: 'Hello!'};
},
changeTo: function (str) {
this.setState({value: str});
},
render: function () {
return (
<div>
<Field value={this.state.value} />
<button onClick={this.changeTo.bind(null, 'Whyyyy?')}>Change to "Whyyyy?"</button>
<button onClick={this.changeTo.bind(null, void 0)}>Change to undefined</button>
</div>
);
}
});
React.render(
<App />,
document.getElementById('app')
);
Run Code Online (Sandbox Code Playgroud)
我想将值传递给defaultValue哑输入组件的支柱.然而,它永远不会重新呈现它.
示例:这是合法的C++ 14吗?
#include <iostream>
static int d() {
return 42;
}
static int e(int d = d()) {
return d;
}
int main() {
std::cout << e() << " " << e(-1) << std::endl;
}
Run Code Online (Sandbox Code Playgroud)
g ++ 5.4 -std=c++14喜欢它,但clang ++ 3.8 -std=c++14抱怨:
samename.cxx:3:23: error: called object type 'int' is not a function or function pointer
static int e(int d = d()) {return d;}
~^
Run Code Online (Sandbox Code Playgroud) 这个问题涉及传递给Ruby块的可选参数.我想知道是否也可以使用默认值定义参数,以及它的语法是什么.
乍一看,似乎答案是"不":
def call_it &block
block.call
end
call_it do |x = "foo"|
p "Called the block with value #{x}"
end
Run Code Online (Sandbox Code Playgroud)
...结果是:
my_test.rb:5: syntax error, unexpected '=', expecting '|'
call_it do |x = "foo"|
^
my_test.rb:6: syntax error, unexpected tSTRING_BEG, expecting kDO or '{' or '('
p "Called the block with value #{x}"
^
my_test.rb:7: syntax error, unexpected kEND, expecting $end
end
^
Run Code Online (Sandbox Code Playgroud) Java允许enum作为注释值的值.如何enum为enum注释值定义一种通用默认值?
我考虑过以下内容,但不会编译:
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.FIELD)
public <T extends Enum<T>> @interface MyAnnotation<T> {
T defaultValue();
}
Run Code Online (Sandbox Code Playgroud)
这个问题是否有解决方案?
BOUNTY
似乎没有直接解决这个Java角落案例.所以,我正在开始寻找最优雅的解决方案来解决这个问题.
在理想的解决方案应该非常符合下列条件:
最好的解决方案
通过沙丘:
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.FIELD)
public @interface MyAnnotation {
// By not specifying default,
// we force the user to specify values
Class<? extends Enum<?>> enumClazz();
String defaultValue();
}
...
public enum MyEnumType {
A, B, D, Q;
}
...
// Usage
@MyAnnotation(enumClazz=MyEnumType.class, defaultValue="A");
private MyEnumType myEnumField;
Run Code Online (Sandbox Code Playgroud)
当然,我们不能强制用户在编译时指定有效的默认值.但是,任何注释预处理都可以验证这一点valueOf().
改进 …
我得到了指向官方Oracle文档的链接:https : //docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html
据说:
默认值
声明字段时,不一定总是需要分配值。编译器会将已声明但未初始化的字段设置为合理的默认值。通常,此默认值将为零或null,具体取决于数据类型。但是,通常认为依赖于此类默认值是不好的编程风格。
我想强调这一部分:
但是,通常认为依赖于此类默认值是不好的编程风格。
但是,天哪,我想这是语言规范的基本组成部分,因为它知道实例变量具有默认值。如果即使在Java SE库源代码中也广泛使用它,那么到底为什么这是一种不好的编程习惯呢?
这是一个示例函数:
public void DrawSquare(int x, int y, Color boxColor = Color.Black)
{
//Code to draw the square goes here
}
Run Code Online (Sandbox Code Playgroud)
编译器不断给我错误: Default parameter value for 'boxColor'must be a compile-time constant
我试过了
Color.Black,
Color.FromKnownColor(KnownColor.Black), and
Color.FromArgb(0, 0, 0)
Run Code Online (Sandbox Code Playgroud)
如何使Color.Black成为默认颜色?另外,我不想使用字符串Black来指定它(我知道它可以工作).我想要的Color.Black价值.
我有一个配置文件如下:
[job]
mailto=bob
logFile=blahDeBlah.txt
Run Code Online (Sandbox Code Playgroud)
我想阅读使用的选项SafeConfigParser:
values = {}
config = ConfigParser.SafeConfigParser()
try:
config.read(configFile)
jobSection = 'job'
values['mailto'] = config.get( jobSection, 'mailto' )
values['logFile'] = config.get( jobSection, 'logFile' )
# it is not there
values['nothingThere'] = config.get( jobSection, 'nothingThere' )
.... # rest of code
Run Code Online (Sandbox Code Playgroud)
最后一行当然会抛出一个错误.如何为config.get()方法指定默认值?
然后,如果我有一个选项文件如下:
[job1]
mailto=bob
logFile=blahDeBlah.txt
[job2]
mailto=bob
logFile=blahDeBlah.txt
Run Code Online (Sandbox Code Playgroud)
似乎没有办法为job1部分中的默认选项指定默认选项job2.
我试图声明局部变量,如:
DECLARE @thresholdDate DATETIME = '2014-11-30'
Run Code Online (Sandbox Code Playgroud)
我收到错误:
无法为本地变量分配默认值.
根据文件:
DECLARE @find varchar(30);
/* Also allowed:
DECLARE @find varchar(30) = 'Man%';
*/
Run Code Online (Sandbox Code Playgroud)
我做错了什么?
default-value ×10
c# ×2
java ×2
annotations ×1
arguments ×1
attributes ×1
c#-4.0 ×1
c++ ×1
colors ×1
configparser ×1
declare ×1
default ×1
enums ×1
forms ×1
function ×1
javascript ×1
overloading ×1
parameters ×1
properties ×1
python ×1
r ×1
reactjs ×1
ruby ×1
ruby-1.9 ×1
scope ×1
sql ×1
sql-server ×1