在你看来,你遇到过的最令人惊讶、最怪异、最奇怪或最“WTF”的语言特性是什么?

请每个回答只回答一个特征。


当前回答

在PHP中

var_export('false' == 0);       // true

var_export('false' == true);    // true

var_export('false' == false);   // false

EDIT

正如@Kobi提到的,这可能发生,因为语言将任何值解释为“TRUE”,除了“FALSE”,但在PHP中不是这样,在那里事情比你想象的更奇怪!

这个案例在PHP手册的“字符串转换到数字”一章中有完整的记录,它说:

如果字符串以valid开头 数值数据,这就是值 使用。否则,该值为0 (零)。

这里有一个例子:

print (int) 'zero';    // 0
print (int) 'false';   // 0
// but
print (int) '1 - one'; // 1

附注:我认为这种隐式类型转换弊大于利。

其他回答

APL(除了ALL),在一行中编写任何程序的能力。

例:在APL中,康威的生命游戏一行:

替代文本 http://catpad.net/michael/APLLife.gif

如果这句台词都不是WTF,那什么都不是!

这是一个视频

在Java中,

String s = null;
System.out.println(s + "hello");

输出“nullhello”。

Java源文件可以以字符\u001a (control-Z)结尾。

在awk中,数组从索引1开始,这是最不容易混淆的。

Java中有标记的break和continue语句。

它们允许你通过一次突破突破多个控制块。