实施例。我有两个随机类变量:
first = 12345 #Fixnum
second = "12345" #String
我可以将第二个var转换为与第一个变量相同的类吗?
我可以使用if block:
if first.class == Fixnum
second = second.to_i
elsif first.class == String
# do nothing
end
但是,可以做到这一点,而不是if或case构造吗?
答案 0 :(得分:2)
您可以使用case
声明。
result = case first
when Fixnum
second.to_i
when Array
[second]
else
second
end
但是,如果您开始使用多个值,则可能需要考虑更好的设计模式。例如,您可以将second
包装在正确实现强制转换技术的自定义对象类型中。
result = first.class.cast(second)