Ruby是否能够理解如下的内联评论:
my_array = ['first', /* 'second', */ 'third', 'fourth']
更新
我没有问过Ruby中的/ * * /是什么以及我收到错误的原因,而是关于任何可用表单中的内嵌注释的存在。 / * * /仅作为我所知的内联评论的例子。
答案 0 :(得分:30)
不,Ruby没有内联评论。
这种风格的评论倾向于降低可读性,因为它们使代码更难以遵循。
在您的情况下,最好将数组项拆分为单独的行并注释掉一行。
my_array = ['first',
# 'second',
'third',
'fourth']
答案 1 :(得分:1)
我想添加rdoc - Ruby的内置文档构建器 - 可以利用代码中的注释来构建一组初始文档。根据我在最近的阅读中所理解的," Ruby方式"建议您的代码应该是可读的和不言自明的,但在将项目发送给适当的文档团队之前,这些注释是在早期开发中构建文档的一种有价值且简单的方法。
关于内联注释的主题,我的用例是我发现自己在将它们提交到格式正确的源文件之前在irb中使用longish one-liners。也许很多人不介意在他们的开发环境中使用换行符,但由于我目前对该工具集的了解有限,我发现重复以前的命令很繁琐。我几乎可以肯定这是因为我没有找到手边的工具,无论是irb,pry还有什么。目前,我正在包装任何我希望在字符串对象中内联注释的代码,我必须稍后将其删除或者#34;取消注释"删除字符串包装器。
接受或离开它,但那是我的两分钱!继续擦拭!
附录:
阅读pry
doc是值得的! pry
方法绑定到每个对象,包括main
。调用它在当前提示中执行子shell,允许您分析当前范围内的任何对象。它可以在任何上下文中使用,包括main
pry提示符。与Pry中的amend-line
,edit
,hist
,play
命令相结合,这满足了我对内联评论的渴望,尽管我还没有意识到任何功能在pry中,它会将前一个命令加载到当前提示的输入中进行编辑。
调用文本编辑器往往会分散我的注意力,不仅因为它从单个显示器(例如笔记本电脑)上的可见性中移除了shell缓冲区的内容,而且特别是因为它删除了所有有用的{{1}选项卡完成和命令。我希望看到pry或其他REPL能够在多行中使用光标,因为我仍然觉得需要使用单行。
答案 2 :(得分:-2)
说实话,你根本不应该使用评论,你的代码应该是自我解释的。
我知道这可能似乎不是主题,但是听到我的建议为什么他们不会在Ruby中实现这些评论。
我偶然发现了这个问题,因为我正在处理客户丑陋的API。处理Ruby代码的JSON请求看起来像这样
api_response = {
headers: ["uniq_id", "email", "description"]
rows: [
[2345, 'foo@bar.car', 'first item'],
[9876, 'car@bar.foo', 'second item']
]
}
所以在我的脚本中我想收集所有的uniq id:
JSON.parse(api_response)
.fetch('rows')
.collect { |application_row| application_row.at(0) }
有能力评论at(0)
正在提取的内容会很高兴。就像sawa在他的评论中提出的那样,如果%c{}
存在,我可以这样做:
JSON.parse(api_response)
.fetch('rows')
.collect { |application_row| %c{uniq_id}; application_row.at(0) }
......但后来我意识到我只是愚蠢。自我代码应该自我解释我的意图
uniq_ids = JSON.parse(api_response)
.fetch('rows')
.collect { |application_row| application_row.at(0) }
在某些情况下,这不是一个选项,所以也许这可以解决问题:
JSON.parse(api_response)
.fetch('rows')
.collect { |application_row| uniq_id = application_row.at(0) }
...是的,这将导致使用未使用的局部变量,但是在这种情况下这是可以的,因为代码的可读性将不会对性能造成太大影响。
在Pauls案例中,他只想从Array中删除一个元素。我猜他可能想要它用于调试目的,但一般的想法是Ruby强迫你把你写成干净的代码并删除任何不会在生产中使用的东西。
解决方案可能是
my_array = ['first']
# my_array += ['second']
my_array += ['third', 'fourth']
这是丑陋的吗?是的,一般的想法是你应该在提交之前重新考虑这个因素,强制你删除丑陋的代码并在生产之前删除不必要的东西。
更新2019 05
我现在看到这个答案是-1,它是2014年发布的。它是2019年我仍然有相同的意见:)如果你写了一个评论你没有编写清楚显示意图的代码:)
肯定有需要发表评论的情况。但开发人员的正确反应应该是:“噢,我的上帝有评论!我需要注意!”
我目前在该领域有12年的专业经验。在项目中反复看到这一点:如果整个代码都有评论,那么开发人员就会停止将评论视为有价值的信息,而不是阅读它们。
但原则上没有“让我们在这里发表评论”的单一用例,这是一个无法通过良好的代码/架构设计来解决的问题:)
任何傻瓜都可以编写计算机可以理解的代码。优秀的程序员编写人类可以理解的代码。