在你看来,你遇到过的最令人惊讶、最怪异、最奇怪或最“WTF”的语言特性是什么?
请每个回答只回答一个特征。
在你看来,你遇到过的最令人惊讶、最怪异、最奇怪或最“WTF”的语言特性是什么?
请每个回答只回答一个特征。
当前回答
我不敢相信这里还没有这个:JSF属性访问。
在JSF UI标签中,你可以将服务器端对象的属性值引用到接口中:
<h:inputText value="#{myObject.property}></h:inputText>
问题是Java不支持属性,所以你必须编写以get和set开头的方法,以便将UI对象链接到服务器上的“属性”。
public void setProperty(String property){...}
public String getProperty(){...}
当我第一次学习JSF时,这让我感到困惑,我仍然认为它值得使用wtf。尽管在Java实现对c#风格属性的支持之前,确实没有其他方法可以做到这一点。
其他回答
在C。
int;
(&a)[0] = 10;/*将值10赋给*/
[0]等于*(&a +0)得到*(&a)也就是a。
Powerbasic (www.powerbasic.com)包含编译器指令:
# BLOAT {bloatsize}
这将使编译后的可执行文件的大小增加<bloatsize>字节。这是放在编译器中,以防创建可执行文件的人不喜欢生成的可执行文件的小尺寸。它使EXE看起来更大,以与臃肿的编程语言竞争:)
Fortran中不同列的特殊含义。(如果你从小就有穿孔卡片,这可能是很自然的。)
这样做的一个副作用是,例如变量名在第72列之后被截断。结合隐式NONE,当这样的变量名在第72列附近开始时,它会无声地引入一个新变量。
你需要
要知道这一点 以不同的方式高亮显示注释部分(第72列之后)的编辑器 颜色比之前的部分…
在C中,a[b][C]与C [b[a]]完全相同。
在JavaScript中,方法的结果取决于所放置的样式花括号。这是K&R风格,其中括号放在方法签名之后和return语句之后:
var foo = function() {
return {
key: 'value'
};
}
foo() // returns an object here
现在,如果我将这段代码格式化为Allman风格,其中括号总是放在新行上,结果是不同的:
var foo = function()
{
return
{
key: 'value'
};
}
foo() // returns undefined here
如何来吗?在JavaScript中,如果您不自己做,语言会自动在每行末尾放置分号。所以在最后一个代码片段中真正发生的是这样的:
var foo = function()
{
return; // here's actually a semicolon, automatically set by JavaScript!
{
key: 'value'
};
}
因此,如果调用foo(),方法中的第一个语句将是一个返回语句,该语句将返回undefined,并且不会执行后面的其他语句。