Должны ли ключи и значения в Berkeley DB на Ruby быть строковыми, а не int, float или любого другого типа?
-
05-07-2019 - |
Вопрос
Кажется, что если я использую Berkeley DB (DBM) на Ruby, ключи и значения хэша должны быть строками?Могут ли они быть другого типа данными?
require 'dbm'
d = DBM.open('test1')
d[1] = 2
d[123] = 456
d[2] = 2.34
d['wa'] = Time.now.to_f
p d.keys
p d.values
Результат:
C:\>ruby test_dbm.rb
["wa", "2", "1", "123"]
["1259229787.686", "2.34", "2", "456"]
Решение
Да, они хранят значения ключей в виде произвольных байтовых строк, которые могут быть фиксированной или переменной длины.Я также понял это недавно, когда мне пришлось использовать bdb в одном из наших проектов.
И вы можете увидеть значения ключей в командной строке, набрав
полные строки/bdb/файл/путь
Не связан с StackOverflow