هل يجب أن تكون المفاتيح والقيم الموجودة في Berkeley DB على Ruby عبارة عن سلاسل، وليست int أو float أو أي نوع آخر؟
-
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/ملف/مسار
لا تنتمي إلى StackOverflow