سؤال

ما زلت أعمل على مغامرتي النصية.أواجه مشكلة في الاستخدام/مع الوظيفة.والمقصود منه هو استدعاء التجزئة التي يكون فيها المفتاح هو الكائن المستخدم ويتضمن المحتوى مصفوفة؛العنصر الأول في المصفوفة هو الكائن الهدف، والثاني هو 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!
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top