尝试在Ruby中使用基础...我已经列出的代码似乎非常重复.还有更好的方法吗?
module Converter
def self.convert(value, from, to)
case from
when :hex
case to
when :dec
# code to change hex to dec
when :oct
# code to change hex to oct
when :bin
# code to change hex to bin
when :ascii
# code to change hex to ascii
end
when :dec
case to
when :hex
# code to change dec to hex
when :oct
# code to change dec to oct
when :bin
# code to change dec to bin
when :ascii
# code to change dec to ascii
end
when :oct
case to
when :hex
# code to change oct to hex
when :dec
# code to change oct to dec
when :bin
# code to change oct to bin
when :ascii
# code to change oct to ascii
end
when :bin
case to
when :hex
# code to change bin to hex
when :dec
# code to change bin to dec
when :oct
# code to change bin to oct
when :ascii
# code to change bin to ascii
end
when :ascii
case to
when :hex
# code to change ascii to hex
when :dec
# code to change ascii to dec
when :oct
# code to change ascii to oct
when :bin
# code to change ascii to bin
end
end
end
end
Run Code Online (Sandbox Code Playgroud)
ste*_*lag 79
class String
def convert_base(from, to)
self.to_i(from).to_s(to)
# works up-to base 36
end
end
p '1010'.convert_base(2, 10) #=> "10"
p 'FF'.convert_base(16, 2) #=> "11111111"
Run Code Online (Sandbox Code Playgroud)