不同语言如何处理"悬挂其他"?

nop*_*ole 7 language-agnostic

我经常看到悬挂的其他东西被处理为:

if (x > 0)
  if (y > 0)
    print "hello"
else
  print "world"
Run Code Online (Sandbox Code Playgroud)

解析器或解释器实际上将else与最接近的if语句匹配,即"if(y> 0)".

是否有任何语言实际上将else与外部if或者fart最匹配的陷阱?(除了明显的Python)

Chr*_*ung 6

如果没有使用对空间敏感的语言(如Python所述),我不明白为什么任何合理的解释都会与最外层的if块相匹配.

有些语言通过以下方式禁止这种潜在的歧义:

  1. 要求所有块的括号,和
  2. 提供了特殊的"否则,如果"语法,通常elsif,elifelseif.