相关疑难解决方法(0)

最奇怪的语言特征

在您看来,您遇到的最令人惊讶,奇怪,奇怪或真正的"WTF"语言功能是什么?

每个答案只能有一个功能.

language-agnostic programming-languages

975
推荐指数
176
解决办法
48万
查看次数

为什么结果因大括号放置而异?

为什么从本文中获取的代码片段会产生不同的结果,因为花括号的位置只有一个变化?

当开始大括号{在新行上时,test()返回undefined,并且警报中显示"no - it broke:undefined".

function test()
{
  return
  { /* <--- curly brace on new line */
    javascript: "fantastic"
  };
}

var r = test();
try {
  alert(r.javascript); // does this work...?
} catch (e) {
  alert('no - it broke: ' + typeof r);
}
Run Code Online (Sandbox Code Playgroud)

当括号与同一行时return,test()返回一个对象,并提醒"神奇".

function test()
{
  return { /* <---- curly brace on same line */
    javascript: "fantastic"
  };
}

var r = test(); …
Run Code Online (Sandbox Code Playgroud)

javascript syntax

99
推荐指数
3
解决办法
2万
查看次数

C++中的分号?

真的需要"缺少分号"错误吗?为什么不把它当作警告呢?

当我编译这段代码

int f = 1
int h=2;
Run Code Online (Sandbox Code Playgroud)

编译器聪明地告诉我,我错过了它.但对我而言,就像 - "如果你知道它,就把它视为存在并继续前进.(后来我可以修复警告.)

  int sdf = 1, df=2;
  sdf=1 df =2
Run Code Online (Sandbox Code Playgroud)

即使对于这段代码,它的行为也是一样的.也就是说,即使多个语句(没有;)在同一行中,编译器也知道.

那么,为什么不删除这个要求呢?为什么不表现得像Python,Visual Basic等.

讨论摘要

缺少两个示例/实例,并且分号实际上会导致问题.

1.

return
 (a+b)
Run Code Online (Sandbox Code Playgroud)

这被认为是JavaScript最糟糕的方面之一.但是,在这种情况下,分号插入是JavaScript的问题,但不适用于C++.在C++中,如果;在返回后完成插入,则会出现另一个错误.也就是说,缺少返回值.

2

int *y;
int f = 1
*y = 2;
Run Code Online (Sandbox Code Playgroud)

对于这个我猜,没有比引入语句分隔符更好的方法,即分号.

c c++

23
推荐指数
3
解决办法
4578
查看次数

Allman风格在JavaScript中的危险含义

我不记得在哪里,但最近我通过了评论,其中用户告诉1TBS在JavaScript中比Allman更受欢迎,并且说Allman在JavaScript中有危险的含义.

这是一个有效的陈述吗?如果是这样,为什么?

javascript code-formatting

11
推荐指数
1
解决办法
2248
查看次数