通过 Integer 检查对象是否是数值类型,而不是 Fixnum 或 Bignum。因为 Fixnum 或 Bignum 表达的数值大小存在范围限定。
Integer
Fixnum
Bignum
timestamp = Time.now.to_i# 差timestamp.is_a? Fixnumtimestamp.is_a? Bignum# 好timestamp.is_a? Integer
timestamp = Time.now.to_i
# 差
timestamp.is_a? Fixnum
timestamp.is_a? Bignum
# 好
timestamp.is_a? Integer
对于随机数的生成,倾向使用 Range 来表示,而不是 Integer + 偏移量,这样可以更加清晰地表达你的意图,类比于投掷骰子。
# 差rand(6) + 1# 好rand(1..6)
rand(6) + 1
rand(1..6)