ハッシュの中にたくさんの要素を格納したいが、その時のキーはキーでなければならない。このようなことをどうやってやりますか?これは純粋なRubyではなくRailsにあります。これを実行する1つの方法をだrubyで(タイムスタンプを使用して)履歴を使ってキー値を格納する方法は?
答えて
:
class Store
def initialize()
@hash = {}
end
def add(data)
@hash[Time.now.to_f] = data
end
def to_s
@hash.to_s
end
end
new_store = Store.new
new_store.add("foo");
new_store.add("bar");
puts new_store.to_s
出力:
{1475565786.995899=>"foo", 1475565786.995907=>"bar"}
hash = (Class.new(Hash) do
def << value
tap { |this| this[Time.now.strftime("%Y-%m-%d %H:%M:%S.%6N")] = value }
end
end).new
hash << :foo
sleep 1
hash << :bar << :baz
hash
#⇒ {
# "2016-10-04 09:44:08.816475" => :foo,
# "2016-10-04 09:44:09.824107" => :bar,
# "2016-10-04 09:44:09.824125" => :baz
# }
NB:私はには力を入れていないため、質問をdownvotedが、このソリューションので、それを答え将来の訪問者に役立つかもしれません。
非常に良い解決策です。ちょうど簡単な質問: 'self [Time.now] = value'は' self.tap'よりも何とか悪いですか? –
@AndreyDeineko 'hash <<:bar <<:baz'を参照してください:' <<'コールを連鎖させるにはこのメソッドは 'self'を返します。 – mudasobwa
絶対に、それについてこのように考えなかった –
- 1. jsonデータ型を実装して価格履歴を格納する方法
- 2. PHPを使って配列に_attrキー値を格納する方法は?
- 3. ruby on rail 4でsystem( "")を使ってアプリケーションを実行した結果の値を格納する方法は?
- 4. getContractを使用してtwsInstrumentで履歴データをダウンロードする方法は?
- 5. SharedPreferences()を使用して値を格納し、別のアクティビティに格納値を取得する方法
- 6. イオンネイティブストレージを使用してアレイデータを格納する方法は?
- 7. Ruby on Railsを使用してpostgresにバイナリオブジェクトを格納する
- 8. RubyZipを使用してZipにリモートファイルを格納するRuby
- 9. DPAPIを使用してRijndaelManagedキーを格納する
- 10. JAVAを使用してMONGO DBに値を格納する方法は?
- 11. mipsを使用して配列にASCII値を格納する方法は?
- 12. Javaを使用してデータベースにXMLタグ値を格納する方法は?
- 13. jstackを使用してスタックトレースの履歴を取得する方法は?
- 14. git log since tagを使ってファイル履歴を取得する方法は?
- 15. インタラクティブ・ブローカーから `ibpy`を使って履歴データを取得する方法は?
- 16. mvを使ってsvnのファイルの履歴を保存する方法は?
- 17. MeanStackでmongooseを使ってMongooseに値を格納する方法
- 18. NSDateComponentでNSUserDefaultsを使用して格納する方法
- 19. localstorageを使用してユーザーIDを格納する方法
- 20. Backbone.jsを使用してlocalStorageにデータを格納する方法
- 21. CoreDataを使用してカスタムクラスを格納する方法
- 22. std :: setを使ってクラスを格納する方法
- 23. Graphstreamを使ってテキストファイルにグラフを格納する方法
- 24. 関数外で使用する値を格納する方法
- 25. 辞書を使用してC#のメソッドに値を格納する方法
- 26. Seleniumを使用してテスト間に値を格納する方法
- 27. jQueryプラグインのlocalStorageを使用して数値を格納する方法
- 28. dplyr関数を使用してインデックス値を格納する方法
- 29. sharedpreferenceを使用してArrayList値のセットを格納する方法
- 30. bitmasksを使用してブール値をJavaScriptに格納する方法
'store || = {}; store [Time.zone.now.to_i] = 'some info'' –
'Time#zone'は' String'([link](http://ruby-doc.org/core-2.3.1/Time)を返します。 html#method-i-zone))ので、 'now'を適用することはできません。あなたは 'Time.now.to_i'を行うことができますが、これは1秒単位しか提供しません。 OPはタイムスタンプに必要な細分性を指定する必要があります。 – user1934428
'Time.now.to'が整数を返し、' to_f'を呼び出すのが無意味なので、粒度 – Tiago