/ / Как да конвертираме низ в цяло число, без да използваме метода ruby ​​'to_i' - ruby-on-rails, ruby

Как да конвертирате низ в цяло число, без да използвате метода на рубин "to_i" - руби-на-релси, рубин

Искам да конвертирам даден низ в цяло число, без да използва рубин to_i метод.

По принцип искам да знам как се изпълнява to_i или какъв е най-добрият начин да го направя. Например:

a = "1234"

result
a = 1234

Благодаря предварително

Отговори:

4 за отговор № 1

Можете да направите това, като следвате

2.1.0 :031 > str = "12345"
=> "12345"
2.1.0 :032 > Integer(str) rescue 0
=> 12345

0 за отговор № 2

За да знаете каква е основната разлика еInteger ще хвърли изключение, ако не е валидно цяло число, но to_i ще се опита да конвертира толкова, колкото може и можете да спасите от Integer в случай, че не е валидно цяло число, както следва

str = "123"
num = Integer(str) rescue 0   # will give you 123
num = str.to_i                # will give you 123

str = "123a"
num = Integer(str) rescue 0   # will give you 0 - will throw ArgumentError in case no rescue
num = str.to_i                # will give you 123

0 за отговор № 3

Използва се, за да се използва този метод в C, може да ви помогне да получите представа:

def too_i(number)
return 0 if (lead = number[/^d+/]).nil?
lead.bytes.reduce(0) do |acc, chaar|
# 48 is the byte code for character "0".
acc*10 + chaar - 48
end
end
too_i "123"
# => 123
too_i "123lol123"
# => 123
too_i "abc123"
# => 0
too_i "abcd"
# => 0