0

コードで奇妙な出力が得られRubyます。コードは次のとおりです。

            mDate = schedule['date']
            sTime = schedule['startTime']
            eTime = schedule['endTime']

            puts "Original Start Time: #{sTime}"
            puts "Original End Time: #{eTime}"
            puts "Original Date: #{mDate}"

            sDate = mDate
            eDate = mDate

            puts "sDate: #{sDate}"
            puts "eDate: #{eDate}"

            @startTime = sDate.concat("T" + sTime + "Z")
            @endTime = eDate.concat("T#{eTime}Z")
            @date = schedule['date']

            puts "Start Time: #{@startTime}"
            puts "End Time: #{@endTime}"
            puts "Date: #{@date}"

            puts "Original Start Time: #{sTime}"
            puts "Original End Time: #{eTime}"
            puts "Original Date: #{mDate}"

出力は次のとおりです。

Original Start Time: 15:00:00
Original End Time: 15:00:00
Original Date: 2012-12-05
sDate: 2012-12-05
eDate: 2012-12-05
Start Time: 2012-12-05T15:00:00ZT15:00:00Z
End Time: 2012-12-05T15:00:00ZT15:00:00Z
Date: 2012-12-05T15:00:00ZT15:00:00Z
Original Start Time: 15:00:00
Original End Time: 15:00:00
Original Date: 2012-12-05T15:00:00ZT15:00:00Z

なぜ1.値が変化しているのか、2.なぜconcatが値を2回追加しているのか、誰かが光を当てることができますか?

4

1 に答える 1

2
sDate = mDate.clone
eDate = mDate.clone

そうしないと、それらはすべて同じオブジェクトになってしまいます。

また、コードと出力を単にダンプするのではなく、問題について説明してください。あなたの質問の終わりまでに、「wtf 私はここで間違っている」を「wtf 私はここでやっている」と読みました。

于 2012-12-05T00:30:48.970 に答える