当前位置: 首页 > 知识库问答 >
问题:

在Switch Case语句中重复Const声明时出错

麹耘豪
2023-03-14

我有下面的代码,我得到了错误“重复声明查询\uURL”。

  switch(condition) {
    case 'complex':
      const query_url = `something`;
      break;
    default:
      const query_url = `something`;
      break;
  }

我知道查询url被声明了两次,这是不对的。但我不知道如何解决这个问题。有没有人能帮助我们找到正确的方法?

共有3个答案

国仰岳
2023-03-14

如果您需要在每种情况下重新声明相同的变量,请参见下面@Bergi的答案

如果query_url可以有多个值,这取决于开关分支,显然你需要一个变量(用varlet声明)。

Const设置一次并保持不变。

使用let的示例用法

let query_url = '';
switch(condition) {
  case 'complex':
    query_url = `something`;
    break;
  default:
    query_url = `something`;
    break;
}
许法
2023-03-14

在这种情况下,我个人更喜欢(并且倾向于滥用)以下方法:

const query_url = (()=>
{
     switch(condition)
           case 'complex': return 'something';
           default       : return 'something-else';
})();

(这需要ES6或在节点4. x中声明使用严格)

更新:或者,根据是否有任何逻辑或是否是简单的分配,更紧凑:

const query_url = {complex : 'something'}[condition] || 'something-else';

当然,这也取决于那些switch语句中嵌入的外部逻辑的数量!

鲜于阳成
2023-03-14

尝试将箱子包装成块:

switch(condition) {
  case 'complex': {
    const query_url = `something`;
    … // do something
    break;
  }
  default: {
    const query_url = `something`;
    … // do something else
    break;
  }
}
 类似资料:
  • JSP 声明语句用于声明一个或多个变量、方法,以供后面的 Java 代码使用。您必须先对变量和方法进行声明,才能使用它们。 JSP 声明语法如下: <%! 声明语句 %> 等效于 示例 JSP脚本和声明的区别 JSP 脚本只能声明变量,不能声明方法。JSP 声明语句可以声明变量和方法。 JSP 脚本会把包含的内容转译插入到 Servlet 的 service() 方法中,也就是  中定义的变量是局

  • 问题内容: 如下代码: 返回以下错误: 为什么会这样呢?我对布尔值非常熟悉。 问题答案: 尝试以下方法: 或使用其他名称。关键是在Java中,它是一个关键字,不能用作变量名- 在语言规范中就在这里。供将来参考,这是用于: 该声明跳过的当前迭代,或循环。未标记的形式跳到最里面的循环主体的末尾,并评估控制该循环的布尔表达式。

  • 问题内容: 我刚刚开始学习go lang,而对于在go lang中声明变量感到困惑 例如我已经声明,里面if … else语句。 但是终端出现错误 好像我在If语句中声明的任何内容都不起作用…我该如何解决? 问题答案: 因为变量仅在声明它们的范围内定义: 去玩 之间的区别,并是仅仅是分配和对变量的声明和分配新建分配FY语法 这个: 等效于: 您可能想要的是:

  • 问题内容: 我试图编写一个简单的查询,在其中声明一些变量,然后在Oracle的select语句中使用它们。我以前可以在SQL Server中使用以下命令执行此操作: 从我完成的搜索看来,您无法在Select语句中声明和设置像这样的变量。这是对的还是我在发短信? 问题答案: 从我完成的搜索看来,您无法在Select语句中声明和设置像这样的变量。 这是对的还是我错过了什么? 在Oracle PL /

  • 问题内容: 函数声明如何处理? 此示例在Chrome和Firefox中产生不同的输出。Chrome输出,而FF输出。 问题答案: 当问这个问题时,ECMAScript5(ES5)盛行。在ES5的严格模式下,函数声明不能​​嵌套在一个块中,如问题所示。在非严格模式下,结果是不可预测的。不同的浏览器和引擎针对如何处理块内的函数声明实现了自己的规则。 许多浏览器都支持ECMAScript2015(ES2

  • 一个 Perl 程序由一系列声明和语句组成。一个声明可以放在任何可以放语句的地方, 但是它的主要作用发生在编译时。有几个声明类似语句,有双重身份,但是大多数在 运行时是完全透明的。编译完之后,语句的主序列只执行一次。 和许多编程语言不同,Perl 并不要求明确的变量声明;变量只在第一次使用的时候才 存在,不管你是否曾声明它们。如果你试图从一个从未赋值的变量里面获取一个值,当你把 它当作数字时 Pe