gpt4 book ai didi

ruby-on-rails - Rails 遗留代码中一些以 ";1"结尾的行

转载 作者:太空宇宙 更新时间:2023-11-03 17:20:15 24 4
gpt4 key购买 nike

嘿 Stack Overflow 的伙伴们,

我需要你的帮助。几个月来,我一直在处理主要是 Legacy 的 Ruby on Rails 应用程序。今天,我注意到代码库中最奇怪的地方。有些文件(数量不多,但很重要)包含几行以 结尾的代码; 1。例如:Users.find(id); 1。这些后缀的出现不会创建任何形式的模式。有时是; 1 出现在 puts 之后或始终返回值的表达式之后,例如无 || '默认值'; 1

使用后缀有意义吗?这背后有什么原因吗?也许曾经有一个工具可以处理 Ruby 代码和 ; 1 是注释形式。我很乐意删除后缀,但我想确保它 100% 安全。

这是在同一提交中添加的项目的代码示例:

times = events.map{|x| [x.time, x.time_from_impression_id]};1
times = times.map{|x| (x.first - x.last) / 1.day}.sort;1
time_to_event_success = times[(times.length.to_f * 0.95).to_i]
events = events.select{|e| e.time_from_impression_id < time_to_event_success.days.ago};1

最佳答案

ruby 中的分号以与换行符相同的方式终止语句。 ; 1 确实没有做任何有用的事情。

从逻辑上讲,您发布的代码等同于:

times = events.map{|x| [x.time, x.time_from_impression_id]}
1
times = times.map{|x| (x.first - x.last) / 1.day}.sort
1
time_to_event_success = times[(times.length.to_f * 0.95).to_i]
events = events.select{|e| e.time_from_impression_id <
time_to_event_success.days.ago}
1

我唯一能想到的是,如果有人在 IRB 中测试代码,添加 ; 1 到行尾将阻止前一条语句的返回值回显。那或者他们不太了解隐式返回以及 truthy 和 falsy 值在 ruby​​ 中是如何工作的。

关于ruby-on-rails - Rails 遗留代码中一些以 ";1"结尾的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50451799/

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