在你看来,你遇到过的最令人惊讶、最怪异、最奇怪或最“WTF”的语言特性是什么?
请每个回答只回答一个特征。
在你看来,你遇到过的最令人惊讶、最怪异、最奇怪或最“WTF”的语言特性是什么?
请每个回答只回答一个特征。
当前回答
更多的是平台特性而不是语言特性:在iPhone上,创建一个无限循环,里面有一些计算,然后运行你的程序。你的手机会发热,当外面冷的时候,你可以把它当手暖。
其他回答
让我们为所有试图废除保留词的语言(如PL/I)投票。
还有什么地方可以合法地写出这样有趣的表达:
IF IF THEN THEN = ELSE ELSE ELSE = THEN
(IF, THEN, ELSE是变量名)
or
IF IF THEN THEN ELSE ELSE
(IF为变量,THEN和ELSE为子程序)
我很惊讶没有人提到大多数类c语言中丑陋的开关case实现
switch (someInt) {
case 1:
case 2: System.out.println("Forgot a break, idiot!");
case 3: System.out.println("Now you're doing the wrong thing and maybe need hours to find the missing break muahahahaha");
break;
default: System.out.println("This should never happen -,-");
}
好在新语言正确地实现了它。
JCL条件返回执行。
//STEP02 EXEC PGM=PROG02,COND=(4,GT,STEP01) .
该特性允许您根据前面步骤的返回代码运行或不运行某个步骤。真是个不错的功能。
除了一些小功能,把逻辑颠倒过来。
首先,如果条件为真,则不运行步骤。
其次,4 GT,STEP01实际上意味着“如果STEP01的返回码大于4”
因此,整个过程意味着“如果来自STEP01的返回代码大于4,则不要运行此步骤”。这与“如果4大于来自STEP01的返回代码,则运行步骤”的简单解释几乎相同,但并不完全相同。
考虑到你唯一认真看待这些事情的时间是凌晨2点30分左右,电话另一端是一个疯狂的夜班接线员,这种双重模糊会导致严重的头痛。
PHP (?)
第一:(未设置)类型转换。
$a = 1;
$b = (unset)$a;
var_dump($a); // 1
var_dump($b); // NULL
用法:http://www.php.net/manual/en/language.types.type-juggling.php # 89637
第二:= NULL和unset()函数之间的区别。
$c = 10;
$d = &$c;
$c = NULL;
var_dump($c); // NULL
var_dump($d); // NULL
$e = 10;
$f = &$e;
unset($e);
var_dump($e); // NULL
var_dump($f); // 10 - WTF?
Perl。
输出“Foo\n”除非$ Foo;