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

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


当前回答

在MOD_REWRITE

RewriteRule ^([a-zA-Z0-9_-]+)\.php$ $1/ [R,NC]
RewriteRule ^([a-zA-Z0-9_-]+)/$ $1\.php [NC,L]

将会导致:

"file.php > file > file.php > file > file.php > file >  ..."

最后:

Error 500 Too Many Redirects

(一般来说,我发现编辑.htaccess文件和构造一个正常运行的正则表达式一样乏味。)

其他回答

在Python中:

>>> a[0] = "hello"
NameError: name 'a' is not defined
>>> a[0:] = "hello"
NameError: name 'a' is not defined
>>> a = []
>>> a[0] = "hello"
IndexError: list assignment index out of range
>>> a[0:] = "hello"
>>> a
['h', 'e', 'l', 'l', 'o']

这些切片分配也会给出相同的结果:

a[:] = "hello"
a[42:] = "hello"
a[:33] = "hello"

在流行性腮腺炎中,你可以有一个带偏移的GOTO。如果你有(我的腮腺炎已经生锈了…)

some_label if x=1 do_something
           else  do_something_else

然后是代码

           goto some_label+1

将跳转到ELSE语句…

在Javascript中,我认为以下是等价的:

a['title'] = "Syntactic sugar is good for yr teeth.";
a.title = "Syntactic sugar is good for yr teeth.";

C的多个名称空间:

typedef int i;

void foo()
{
    struct i {i i;} i;
    i: i.i = 3;
    printf( "%i\n", i.i);
}

或与字符:

typedef char c;

void foo()
{
    struct c {c c;} c;
    c: c.c = 'c';
    printf( "%c\n", c.c);
}

对我来说,它绝对是INTERCAL中的PLEASE修饰符。 如果PLEASE出现的次数不够多,则认为程序不够礼貌,错误消息如下所示;如果太频繁,这个程序可能会被认为过于礼貌而被拒绝。