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

StackOverflow https://stackoverflow.com/questions/1802756

  •  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/файл/путь

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top