تخزين proc داخل مصفوفة داخل التجزئة
سؤال
ما زلت أعمل على مغامرتي النصية.أواجه مشكلة في الاستخدام/مع الوظيفة.والمقصود منه هو استدعاء التجزئة التي يكون فيها المفتاح هو الكائن المستخدم ويتضمن المحتوى مصفوفة؛العنصر الأول في المصفوفة هو الكائن الهدف، والثاني هو Proc الذي سيتم تنفيذه إذا تحولت تلك العلاقة إلى مطابقة الوسائط الخاصة بالوظيفة use/with.
من فضلك هل يمكنك توضيح لي كيف يمكنني تخزين كتلة التعليمات البرمجية داخل مصفوفة داخل التجزئة حتى أتمكن من تذكرها لاحقًا اعتمادًا على الكائنات التي يتم دمجها؟
هذه هي وظيفة الاستخدام الخاصة بي والتي تأخذ "use هدف مع مع":
def use(object, with)
if INTERACTIONS[object][0] == with
INTERACTIONS[object][1]
end
end
وهذه هي الطريقة التي حددت بها العلاقات (حتى الآن هناك علاقة واحدة فقط):
INTERACTIONS = {"key" => ["clock", p = Proc.new{puts "You open the clock!"}]}
كلما كتبت
use key with clock
لا يُرجع شيئًا سوى سطر مطالبة جديد.
المحلول
لقد نسيت أن .call
العملية:
INTERACTIONS = {"key" => ["clock", Proc.new {puts "You open the clock!"}]}
def use(object, with)
if INTERACTIONS[object][0] == with
INTERACTIONS[object][1].call # procs need to be `call`ed :)
end
end
use("key", "clock") # => You open the clock!
لا تنتمي إلى StackOverflow