Ruby:实现一种新的评论方式

Ruby:实现一种新的评论方式,ruby,Ruby,我喜欢在测试时注释掉部分代码,但与其他语言相比,在Ruby中这并不容易。我知道目前Ruby的评论方式,但不知道是否有其他方法。这里的代码显然不起作用,我想很多人都有理由不这么做,但这能做到吗 def /* =begin end def */ =end end /*testing*/ //testing /* testing on multiple lines */ puts 'test' 现代的编辑器/IDE应该促进大规模代码注释。我用过,他们都允许。您选择一段代码,点击Cmd+

我喜欢在测试时注释掉部分代码,但与其他语言相比,在Ruby中这并不容易。我知道目前Ruby的评论方式,但不知道是否有其他方法。这里的代码显然不起作用,我想很多人都有理由不这么做,但这能做到吗

def /*
  =begin
end
def */
  =end
end

/*testing*/
//testing

/*
testing
on multiple lines
*/

puts 'test'

现代的编辑器/IDE应该促进大规模代码注释。我用过,他们都允许。您选择一段代码,点击Cmd+/,所有的行都会被注释掉,只有一行注释。再次点击Cmd+/,代码将被取消注释。非常方便。

现代编辑器/IDE应该有助于对大量代码进行注释。我用过,他们都允许。您选择一段代码,点击Cmd+/,所有的行都会被注释掉,只有一行注释。再次点击Cmd+/,代码将被取消注释。非常方便。

您可以使用
=begin
=end
注释出多行,但它们必须位于行的开头

class TestClass

  def my_method

  end

=begin
  def another_method
    # ...
  end
=end

end

除此之外,答案是这是不可能做到的。在Ruby中不能使用C风格的多行注释。这不是技术限制的情况,语言不支持这一点。不管你是如何做到这一点的,一旦你做到了,你就不再写Ruby了。您将产生一种只有您的解释器才能理解的破损的Ruby方言。

您可以使用
=begin
=end
注释掉多行,但它们必须位于行的开头

class TestClass

  def my_method

  end

=begin
  def another_method
    # ...
  end
=end

end
除此之外,答案是这是不可能做到的。在Ruby中不能使用C风格的多行注释。这不是技术限制的情况,语言不支持这一点。不管你是如何做到这一点的,一旦你做到了,你就不再写Ruby了。您将生成一种只有您的解释器才能理解的破损的Ruby方言。

Ruby注释以字符串文本外的#字符开头


通过使用编辑器的“列”模式将#作为行上的第一个字符插入,可以一次注释掉多行

例如:

def foo
#  ...
#end
#def bar
#  ...
end
Ruby注释以字符串文本外的#字符开头


通过使用编辑器的“列”模式将#作为行上的第一个字符插入,可以一次注释掉多行

例如:

def foo
#  ...
#end
#def bar
#  ...
end


您想知道如何破解ruby解析器,还是想注释一些代码?你的问题是什么?我想知道是否有可能在Ruby中实现这样的评论,破解Ruby解码器超出了我的预期。当然,你可以让它工作,但这意味着你必须使用Ruby并修改解析器使其工作。但是没有好的或令人信服的理由这样做。@peter不,答案是不能这样做。这不是技术限制的情况,语言不支持这一点。不管你是如何做到这一点的,一旦你做到了,你就不再写Ruby了。您将产生一种只有您的解释器才能理解的破损的Ruby方言。无需分叉Ruby或以其他方式摆弄其解析器,您始终可以在构建过程中调用C预处理器或m4预处理器,以几乎任何您想要的方式转换代码。当然,这会使您的代码不可移植,同时也不会带来构建环境。您想知道如何破解ruby解析器,还是想对一些代码进行注释?你的问题是什么?我想知道是否有可能在Ruby中实现这样的评论,破解Ruby解码器超出了我的预期。当然,你可以让它工作,但这意味着你必须使用Ruby并修改解析器使其工作。但是没有好的或令人信服的理由这样做。@peter不,答案是不能这样做。这不是技术限制的情况,语言不支持这一点。不管你是如何做到这一点的,一旦你做到了,你就不再写Ruby了。您将产生一种只有您的解释器才能理解的破损的Ruby方言。无需分叉Ruby或以其他方式摆弄其解析器,您始终可以在构建过程中调用C预处理器或m4预处理器,以几乎任何您想要的方式转换代码。当然,这会使您的代码不可移植,而不附带构建环境。我(个人)从未使用过这种语法。textmate让它变得更简单:)谢谢,但我知道存在的可能性,编辑我的问题以澄清这一点,它们必须在一行的开头,这是我经常希望有一个替代方案,而不是在每行或这一技术(或其他不太好的方法)上都加一个#@塞吉奥,这对你和Textmate来说太好了。我不使用它。我(个人)从不使用这种语法。textmate让它变得更简单:)谢谢,但我知道存在的可能性,编辑我的问题以澄清这一点,它们必须在一行的开头,这是我经常希望有一个替代方案,而不是在每行或这一技术(或其他不太好的方法)上都加一个#@塞吉奥,这对你和Textmate来说太好了。我不使用它。谢谢,但我知道存在的可能性,编辑我的问题使之成为clearWell,那么如果你想要C风格的注释,你别无选择,只能破解ruby解析器。谢谢,但我知道存在的可能性,编辑我的问题使之成为clearWell,如果你想要C风格的注释,那么你别无选择,只能破解ruby解析器。谢谢,但我知道存在的可能性,编辑我的问题以使其清晰谢谢,但我知道存在的可能性,编辑我的问题以使其清晰