ruby - 检查方法参数的类型

标签 ruby types

我不确定传递给方法的对象的类型是否正确。我可能会将一个字符串传递给一个只能处理整数的函数。某种运行时保证怎么样?我看不到比以下更好的选择:

def someFixNumMangler(input)
  raise "wrong type: integer required" unless input.class == FixNum
  other_stuff
end

有更好的选择吗?

最佳答案

使用 Kernel#Integer在使用之前转换输入的方法。当无法以任何合理的方式将输入转换为整数时,它将引发 ArgumentError

def my_method(number)
  number = Integer(number)
  # do something with number, which is now guaranteed to be an integer
end

推荐Avdi Grimm的新书Confident Ruby对此有更多的了解。

关于ruby - 检查方法参数的类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18636995/

相关文章:

Ruby 相当于 RijndaelManaged

javascript - 为什么数组中的索引会破坏 TypeScript 中的类型安全?

mysql - MySQL、PostgreSQL、SQLite中数据库列类型的比较? (交叉映射)

types - 在定义它们的模块之外使用开放联合

Python:- 将字符串转换为列表

ruby - Ruby 1.9 中的 ARGF.class 是什么?

ruby-on-rails - Ruby 1.9.2 如何在 Windows 上安装 RMagick?

java - 如何创建正确的返回类型?

ruby-on-rails - ruby regex 使用最后一个匹配来分隔字符串,但应该首先使用

Ruby 无法加载此类文件 - active_support/core_ext/object/blank