我不确定下面的代码片段到底发生了什么.
>> a, b = ["ho", "hey"]
=> ["ho", "hey"]
>> a
=> "ho"
>> b
=> "hey"
>> c, d = "foo", "bar"
=> ["foo", "bar"]
>> c
=> "foo"
>> d
=> "bar"
>> a, b = ["blerg"], ["baz"]
=> [["blerg"], ["baz"]]
>> a
=> ["blerg"]
>> b
=> ["baz"]
Run Code Online (Sandbox Code Playgroud)
为什么第1行不会返回a => ["ho"]?
所以在幕后,什么是这三个任务之间的差异(a, b = ["ho", "hey"],c, d = "foo", "bar",a, b = ["blerg"], ["baz"])?
32位ruby 1.9.2p290(我必须使用),似乎很难在当前时间内添加25(但不是24!)年.
now = Time.now
more_time = (24*365*24*60*60)
puts "more_time.class = #{more_time.class}"
later = now + more_time
now = Time.now
more_time = (25*365*24*60*60)
puts "more_time.class = #{more_time.class}"
later = now + more_time
Run Code Online (Sandbox Code Playgroud)
生产:
more_time.class = Fixnum
more_time.class = Fixnum
ruby_time.rb:11:in'+':时间+ 788400000.000000超出ruby_time.rb的时间范围(RangeError):11
我遇到了2038年的问题吗?64位ruby 1.9.2-p290我没有这个问题.