Должны ли ключи и значения в Berkeley DB на Ruby быть строками, а не int, float или любым другим типом? - PullRequest
0 голосов
/ 26 ноября 2009

Кажется, что если я использую 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"]

1 Ответ

1 голос
/ 26 ноября 2009

Да, они хранят значения ключей в виде произвольных байтовых строк, которые могут быть фиксированной или переменной длины. Я также понял это недавно, когда мне пришлось использовать bdb в одном из наших проектов.

И вы можете увидеть значения ключей в командной строке, набрав

строки заполнены / bdb / file / path

...