如何检查一个variables是一个数字还是一个string?

如何检查一个variables是一个数字或string在Ruby?

有几种方法:

>> 1.class #=> Fixnum >> "foo".class #=> String >> 1.is_a? Numeric #=> true >> "foo".is_a? String #=> true 
 class Object def is_number? self.to_f.to_s == self.to_s || self.to_i.to_s == self.to_s end end > 15.is_number? => true > 15.0.is_number? => true > '15'.is_number? => true > '15.0'.is_number? => true > 'String'.is_number? => false 
 var.is_a? String var.is_a? Numeric 

finishing_moves gem包含一个String#numeric? 方法来完成这个任务。 这个方法和installero的答案一样,只是打包。

 "1.2".numeric? #=> true "1.2e34".numeric? #=> true "1.2.3".numeric? #=> false "a".numeric? #=> false 

打印它的类,它会告诉你哪种types的variables是(例如string或数字)。

例如:

 puts varName.class 
 if chr.to_i != 0 puts "It is number, yep" end