0) if (y > 0) print "hello" else print "world" 解析器或解释器实际上会将 else -6ren">
gpt4 book ai didi

language-agnostic - 不同的语言如何处理 "dangling else"?

转载 作者:行者123 更新时间:2023-12-04 07:50:10 26 4
gpt4 key购买 nike

我经常看到悬空的 else 处理为:

if (x > 0)
if (y > 0)
print "hello"
else
print "world"

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

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

最佳答案

不使用空间敏感语言(如你所说的 Python),我不明白为什么任何合理的解释都会匹配最外层的 if堵塞。

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

  • 所有块都需要大括号,和
  • 提供特殊的“else if”语法,通常是 elsif , elif , 或 elseif .
  • 关于language-agnostic - 不同的语言如何处理 "dangling else"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/967511/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com