假设我有一个文字 Fixnum 1420028751000
,我想使用它进行转换:
Time.at(1420028751000 / 1000) # => 2014-12-31 20:25:51 +0800
我也可以添加空格,假设我是初学者并且我的编码很糟糕:
Time.at(1420028751000 / 1000)
Time.at(1420028751000 /1000)
所有这些工作正常并给我正确的结果。
但是,一旦我引入了变量:
a = 1420028751000
Time.at(a/1000) # => Works!
Time.at(a / 1000) # => Works!
Time.at(a /1000) # => Strange thing happen
我的问题是,/1000
有什么独特之处,导致它在 Ruby 中引入变量时不起作用?
最佳答案
Ruby 的解析器将 /1000
解释为文字正则表达式的开头,因为 a
是一个可能是方法的标记。也就是说,假设 a
是一个方法:
def a(arg); end
Time.at(a /1000)
Ruby 会将其解释为“使用不完整的正则表达式作为参数进行调用”。为了“完成”此调用,Ruby 希望您可能想要执行以下操作:
Time.at( a(/1000/) )
关于ruby - Ruby 中除法运算符上带有空格的文字与变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28870020/