在你看来,你遇到过的最令人惊讶、最怪异、最奇怪或最“WTF”的语言特性是什么?
请每个回答只回答一个特征。
在你看来,你遇到过的最令人惊讶、最怪异、最奇怪或最“WTF”的语言特性是什么?
请每个回答只回答一个特征。
当前回答
在ColdFusion
Struct(又名Java HashMap)是通过引用传递的。
你可能认为其他数据类型的行为就像Java…
数组是按值传递的,wtf!
List只是一个普通的逗号分隔的字符串!
其他回答
我不知道这是否是真的,但我们偶然发现VS FORTRAN(66或77)不支持递归。递归是偶然的,我们的默认F77支持它很漂亮,但当我们把源代码IBM - Whatta混乱。
到目前为止,我遇到过的最奇怪的功能是BASIC方言中的“RETURN n”语句(不记得是哪一种了,这是大约28年前的事了)。“n”是可选的,默认为1。它可以是一个正数或负数,指示下一个执行的是与调用GOSUB相关的哪一行。
例如,下面将输出“30”:
10 GOSUB 200
20 PRINT "20"
30 PRINT "30"
100 END
200 RETURN +2
当我必须把一个用这种奇怪的BASIC语言编写的程序翻译成FORTRAN时,我遇到了这个问题。BASIC程序相当多地使用了这个特性,根据不同的条件返回不同的语句,我花了一段时间来理解逻辑流。一旦我理解了它,我就可以编写一个更简单的程序版本。不用说,更简单的FORTRAN版本比原来的BASIC程序bug更少。
在我看来,在c#中能够将超出范围的整数转换为枚举是非常奇怪的。想象一下这个枚举:
enum Colour
{
Red = 1,
Green = 2,
Blue = 3
}
现在,如果你写:
Colour eco;
eco = (Colour)17;
编译器认为这很好。还有运行时。
请看这里了解更多细节。
在PHP中:
echo 'foo' == 0; // echos '1'
echo 'foo' == true; // echos '1'
echo 0 == true; // echos '0'
$foo = 'foo';
echo $foo['bar'] // echos 'f'
PHP有一些最烦人的类型强制转换…
Python 2. x
>>>True = False
>>>True
False
你真的可以让一个人变得疯狂。