Ruby 的鸭式打字很棒,但这是它让我很恼火的一种方式。我将运行一些长时间运行的文本处理脚本或某些东西,几个小时后,一些意外的情况最终导致脚本退出 NoMethodError
由于变量变成 nil
。
现在,一旦发生这种情况,通常很容易修复,但如果我能够更好地预测这些错误,或者至少更优雅地处理这些类型的错误,那就更好了。很抱歉问题含糊不清,但这种类型的错误对我来说经常发生,我想知道是否有一个好的方法来避免它。
是否有一些与 Ruby 的此类“类型错误”相关的最佳实践?
最佳答案
查找Design by Contract 。它在许多编程范例中都很有用,但当您没有编译器来帮助您捕获此类错误(禁止参数使用特定类型的值)时,它尤其有用。
本质上,DbC 允许您对参数做出假设。它允许您(除了一个地方之外)跳过保证这一假设成立的普通检查。
关于ruby - 一般来说,避免 "undefined method ' some_method' for nil :NilClass"in Ruby,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3806605/