p str1==str2返回的结果应该是先打印"str1==str2"的结果后,然后再输出一个空行。这点可以查看相关api。所以msgbox显示的是nil(即返回的空行)。
测试实例:
irb(main):002:0>s=p "1"=="1"
true
=>nil
irb(main):003:0>s
=>nil
查询核心模块Kernel API可知:如果是Float类型则通过Kernel.Float(字符串)判断,这里不能转为浮点数则会抛出异常。你只需再捕获一下输出自己的信息就行。
可以用class来做。
value.class可以返回对象类型。 然后可以用。
value.is_a? 类型(String, Integer 等等)来查看具体类型。