Difference between Integer(value) and value.to_i

ruby

Solution

`Integer(num)` will throw an `ArgumentError` exception if num isn't a valid integer (you can specify the base).

`num.to_i` will convert as much as it can.

For example:

"2hi".to_i 
#=> 2

Integer("2hi")
#=> throws ArgumentError

"hi".to_i
#=> 0

Integer("hi")
#=> throws ArgumentError

"2.0".to_i
#=> 2

Integer("2.0")
#=> throws ArgumentError

Problem

Given a string object like this: ``` twohundred = "200" ``` What is the difference between doing: ``` Integer(twohundred) #=> 200 ``` and: ``` twohundred.to_i #=> 200 ``` Is there any difference? Is it recommended to use one among the other one?

Original source