هل يجب أن تكون المفاتيح والقيم الموجودة في Berkeley DB على Ruby عبارة عن سلاسل، وليست int أو float أو أي نوع آخر؟

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

  •  05-07-2019
  •  | 
  •  

سؤال

يبدو أنه إذا استخدمت Berkeley DB (DBM) على روبي، فيجب أن تكون مفاتيح التجزئة وقيمها عبارة عن سلاسل؟هل يمكن أن يكونوا من نوع بيانات آخر؟

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