【发布时间】:2019-01-05 18:38:07
【问题描述】:
我想实现一个方法,将任何给定的 String 值转换为其适当的表示形式。以下是我所指的一些示例:
- “TRUE”应该变为真(TrueClass)
- “1000”应该变成1000(整数)
- 应该简单地返回“文本”(字符串)
我相信我提供的代码已经解决了这个问题,尽管我对它的外观不太满意。我认为这可以改造成更复杂的东西,但我的创造力已经达到了极限。
def convert(value)
return true if value =~ /^true$/i
return false if value =~ /^false$/i
return value unless value =~ /^[0-9]*$/
begin
Integer(value)
rescue ArgumentError
nil
end
end
我的问题本质上是:有没有办法提供相同的功能,但返回语句更少,整体代码更少?
【问题讨论】:
-
@baseballllover723,您是否希望读者访问该链接并尝试找出您发布该链接的原因?请在执行此操作时提供上下文。
-
"1.3"、"{ 1=>2, e\3=>4 }"等呢?它们会被视为字符串吗?也就是字符串代表一个整数,true还是false,其他都是文本? -
我不确定我是否理解你的问题,Cary。我想您是在问我如何处理浮点数,在这种情况下,我会回答我将它们视为 String 对象。我基本上只想区分整数、布尔值和字符串——在这种情况下,其他任何东西都无关紧要。
标签: ruby