Coffeescript 无与伦比的突出错误

Posted

技术标签:

【中文标题】Coffeescript 无与伦比的突出错误【英文标题】:Coffeescript unmatched outdent error 【发布时间】:2012-12-25 12:36:46 【问题描述】:

当我尝试编译以下咖啡脚本代码时,我收到了错误 SyntaxError: Unmatched OUTDENT on line 9。我不确定我做错了什么。缩进似乎是正确的,我想要的一切都在我想要的地方。

row_possibilities = (grid) ->
  for rows in [0..8] by 1
    for columns in [0..8] by 1
      if(Array.isArray(grid[rows][columns])
        for possible_val in grid[rows][columns] by 1
          grid = unique_row_possibility(grid, rows, columns, possible_val)
          if(Array.isArray(grid[rows][columns]) == false)
            break
  return grid

代码应该做的是运行三个 for 循环,并在某个条件发生时中断最里面的 for 循环。

在所有 for 循环运行之后。我想返回变量网格。我仔细检查了间距,并在 repl.it 上尝试了它,但我无法弄清楚。

【问题讨论】:

第 4 行的 if(Array.isArray(grid[rows][columns]) 缺少结束括号? 就是这样。事后看来,这种类型的东西总是更容易。另外,如果您想让您的评论成为答案,我可以接受。 有时,在你盯着代码太久之后,它只需要第二双眼睛。 【参考方案1】:

有点难看,但您似乎在第 4 行缺少右括号:

if(Array.isArray(grid[rows][columns])

一般来说,对于这个特定的错误,问题几乎总是出在缩进或不平衡括号或方括号/大括号上。

【讨论】:

啊啊,我怎么忘了!? @JesseVogt - 谢谢 - 有没有可以快速识别不匹配括号的程序?同样的错误,但我似乎无法发现它! chrs @bkspureon 一些代码编辑器会突出显示匹配的括号 这种报错信息总比没有信息好,只有省略行号

以上是关于Coffeescript 无与伦比的突出错误的主要内容,如果未能解决你的问题,请参考以下文章

如何在 rails3.1 中使用 ajax?

CoffeeScript 转换代码是不是错误?

第 6 行 (CoffeeScript) 中未关闭的 INDENT 编译器错误

带有回调和简化错误处理的 Coffeescript

ruby on rails 中的 Coffeescript 编译错误

在 CoffeeScript 文件上运行 Jasmine 测试时对象未定义错误