在 Ruby 中处理数字时,一个关键点是区分整数(小数点后没有数字的数)和浮点数(小数点后有零个或多个数字的数)。它们分别通过 Integer和Float类实现。
a = 1
b = 1.0
a.class
#=> Integer
b.class
#=> Float
+、-、*、/)完成。数字可以使用标准的比较运算符进行比较。Integer实例之间的基本算术运算,结果始终是Integer实例。Float实例之间的基本算术运算,结果仍是Float实例。Integer实例和Float实例之间的基本算术运算,结果是Float实例。Float类和Integer类都有方法可以把值从一种类型强制转换成另一种。Integer数字精确到整数单位,而Float的精度则是分数级的。这意味着把浮点数强制转换成整数可能会丢失精度。4.9.to_i
#=> 4
5.to_f
#=> 5.0
7 - 3.0
#=> 4.0
2 == 4
#=> false
1.0 == 1
#=> true
可以用if语句按条件执行代码:
x = 5
if x == 5
# Execute logic if x equals 5
elsif x > 7
# Execute logic if x greater than 7
else
# Execute logic in all other cases
end
有时你想在某个条件不成立时执行一条(或多条)语句。针对这种情况,Ruby 提供了unless关键字:
x = 4
unless x == 5
# Execute logic if x does not equal 5
else
# Execute logic if x == 5
end
如果你想根据变量的值执行不同的代码,Ruby 的case语句可能会派上用场:
y = 5
case y
when 3
# Execute logic if y equals 3
when 5
# Execute logic if y equals 5
else
# Execute logic in all other cases
end
同一个问题有时可以用不同类型的条件语句来解决,而有时其中一种可能比另一种更适合。使用这三种条件语句中的任意一种时,不妨先停下来想一想,也考虑一下另外两种。