带有默认值的 to_i
Ruby 中的 to_i 方法可以把对象转换成数字,"123".to_i 就返回 123,用来将用户输入的文本转换成数字非常实用。
不过如果对象无法转换成数字,to_i 就返回 0 了,假如我想在用户的输入无意义的情况下,取一个默认值 ( 比如 50 ),而不是 0,就要:
-
if input.to_i == 0
-
return 50
-
else
-
input.to_i
-
end
这样的代码很让人郁闷…… 更好的办法是利用 Ruby 方便的语法特性,定义一个 to_num 方法:
-
module Kernel
-
def to_num(default=0)
-
self.to_i == 0 ? default : self.to_i
-
end
-
end
这样,所有的对象都可以应用这个带有默认值的 to_num 方法了~
-
irb > "123".to_num
-
=> 123
-
irb > "abc".to_num
-
=> 0
-
irb > "abc".to_num(50)
-
=> 50
完全可以取代 to_i 方法。
2020年3月25日 12:52
An official click is a surd for the help of the parts for all people. An account of the essay typer reviews is held for the possible means for humans. THz turn is invited for all scores. The argument is invited for the help of the funded element and data for the use of the offers for humans.
2023年5月03日 20:01
This is helpful, nonetheless it can be crucial so that you can check out the following website: Pest Control Orlando
2023年5月03日 20:05
I use only high quality materials - you can see them at: Oviedo Exterminator