在你看来,你遇到过的最令人惊讶、最怪异、最奇怪或最“WTF”的语言特性是什么?
请每个回答只回答一个特征。
在你看来,你遇到过的最令人惊讶、最怪异、最奇怪或最“WTF”的语言特性是什么?
请每个回答只回答一个特征。
当前回答
在Haskell:
let 2 + 2 = 5 in 2 + 2
收益率5。
其他回答
Java缓存范围为-128到127的整数对象实例。如果你不知道这一点,下面的内容可能会让你有些意想不到。
Integer.valueOf(127) == Integer.valueOf(127); // true, same instance
Integer.valueOf(128) == Integer.valueOf(128); // false, two different instances
在awk中,数组从索引1开始,这是最不容易混淆的。
反向波兰符号。这意味着实参在函数之前。换句话说,2加2就是2 +。
具有WTF特性的语言包括Forth、Postscript(是的,激光打印机的Postscript)和Factor。
闲聊:
在类Test中有一个类方法,返回一个常量字符串:
method1
^ 'niko'
无论发生什么,这个方法都会不断返回字符串'niko'。但事实并非如此。
s := Test method1
(设置为“niko”。)
s at: 4 put: $i.
(设置为“niki”。)
s := Test method1
(再次设置为“niki”。)
因此,第二行代码永久地将method1更改为返回'niki'而不是'niko',即使方法的源代码没有更新。
PHP
来自在线文档: string implode (string $glue, array $pieces) -用字符串连接数组元素 注意:由于历史原因,implode()可以以任意一种顺序接受其形参。
这是可行的:implode($someArray, $glue)
希望他们能在PHP 6中消除这些历史怪癖。