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

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


当前回答

这是我的两分钱。在c++中:

int* t = new int(15);
delete t;

其他回答

在Java中:

int[] numbers() {
  return null;
}

可以写成:

int numbers() [] {
  return null;
}

在Lisp中,你可以复制一个列表,可以复制一个向量,可以复制一个结构体,可以复制一个CLOS对象……

... 但是不能复制数组或哈希表。

不知道有没有人提过。

在Java中,在finally块中它可以返回一个值。它将停止异常的传播并覆盖正常的return语句。

有些奇怪——VBScript有一个Null关键字和一个Nothing关键字(Null是丢失的数据,Nothing是丢失的对象)。为什么不只有一个关键词…?大多数其他语言似乎都可以用一个!

Visual Basic 6.0当然还有“经典ASP”代码(因为它使用VBScript)也有同样的奇怪之处。在Visual Basic的新旧版本中,我们都有DBNull。

然而,这种情况正在改善,就像Visual Basic一样。NET Null终于消失了,所以Null不再使用,只有Nothing和DBNull被使用。

这是我的两分钱。在c++中:

int* t = new int(15);
delete t;