7

根据维基百科, COMEFROM 流量控制被认为是一个笑话,不可读或完全有害。我想这样的功能在 AOP 场景中会非常有用(即,向方法添加记录器而不向方法添加记录器调用)。

这种控制结构不明显的缺点是否超过了潜在的有用性?还有其他缺点需要考虑吗?

因为这个而被提示问这个问题。

4

2 回答 2

1

对于初学者来说,在任何现代语言中基本上都是无用的,因为您需要:

  • 通过行号引用要跳转的位置,这些是易变的。
  • 在代码中放置一个标记或标签来表示一个可以跳过的位置,从而破坏了不需要这样做的任何可能的好处。

还:

  • 通过检查使任何类型的调试基本上无用。
  • 除非您保持变量的持久性,否则无法真正捕获它跳转的任何上下文,这会带来麻烦。

一个更好的主意是:

  • 编写一个挂钩 API。
  • 调用函数!
于 2011-05-24T15:20:24.350 回答
0

出于您提到的目的,面向方面的编程(维基百科)似乎比comefrom. 有关如何将日志记录添加到单独文本单元中的方法的示例,请参见动机和基本概念(同上)的底部。

在足够动态的语言中,可以对方法使用“环绕”修饰符来处理此类事情:

  def do_something
    ...
  end
  log :do_something, "Something got done"

在这个人为的示例中,log宏导致do_something方法被一个新方法替换,该方法首先调用原始do_something方法,然后将一些内容写入日志。

于 2011-05-24T18:21:53.490 回答