gpt4 book ai didi

ruby - 检测丢失的 sub!、sort!、map! 等

转载 作者:数据小太阳 更新时间:2023-10-29 08:43:30 27 4
gpt4 key购买 nike

从长期使用另一种语言编写代码回到 Ruby 之后,我经常假设 foo.sortfoo.map {...} foo.sub/bar/, 'zip'改变 foo。当然,我指的是 foo.sort! 等。但这通常需要 3 或 4 次调试才能注意到。同时,计算了排序,但没有分配给任何东西。我可以让 ruby​​ 警告丢失的左值,就像 C 编译器警告函数的忽略返回值一样吗?

最佳答案

您的意思是像 Perl 有点臭名昭著的“在无效上下文中使用 map”?我不知道 Ruby 有这样的东西。听起来您需要更多的单元测试来捕获此类错误,然后它们才能深入您的代码以被视为错误。

请记住,Ruby 比 Perl 等语言灵活得多。例如,以下代码可能很有用:

def rewrite(list)
list.map do |row|
row += '!'
end
end

从技术上讲,这是空上下文中的 map,但因为它用作返回值,所以它可能在其他地方被捕获。调用者有责任使用它。将方法本身标记为某种警告是大多数 linting 类型工具可以执行的级别。

关于ruby - 检测丢失的 sub!、sort!、map! 等,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40963453/

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