是否可以在Ruby中使用开始/结束我在C#中使用#region的方式?

Sim*_*mon 5 ruby regions

我最近从C#转到了Ruby,我发现自己错过了制作可折叠标记代码区域的能力.我突然意识到做这种事情应该没问题:

class Example
  begin # a group of methods

    def method1
      ..
    end

    def method2
      ..
    end

  end

  def method3
    ..
  end
end
Run Code Online (Sandbox Code Playgroud)

......但这样做真的可以吗?方法1和方法2最终与方法3相同吗?还是有一些Ruby的习惯用法,我还没有看到呢?

Mla*_*vić 6

添加任意Ruby代码以取悦编辑对我来说似乎不合理.我认为你应该尝试获得一个像样的文本编辑器,它可以配置为使用你在注释中放置的一些关键字来启用代码折叠,例如:

# region start AAA

some(:code, :here)

# region end AAA
Run Code Online (Sandbox Code Playgroud)

如果你允许我讽刺:你应该知道Ruby比C#更具表现力,优雅和漂亮,并且很可能没有任何Ruby代码应该首先被隐藏!;)


mol*_*olf 6

正如其他人所说,这不会改变方法定义.

但是,如果要标记方法组,为什么不使用Ruby语义来标记它们?您可以使用模块将代码拆分为属于一起的块.即使您不重用模块,这对于大型类也是很好的做法.当代码增长时,将模块拆分为单独的文件以便更好地组织将变得容易.

class Example
  module ExampleGroup
    def method1
      # ..
    end

    def method2
      # ..
    end
  end
  include ExampleGroup

  def method3
    # ..
  end
end
Run Code Online (Sandbox Code Playgroud)