كيفية التحقق مما إذا كان الرمز قابل للحل في مساحة الاسم الحالية؟

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

  •  06-07-2019
  •  | 
  •  

سؤال

أريد التحقق مما إذا كان رمزًا قابلاً للحل في مساحة الاسم الحالية. ما هي الطريقة الكنسية للقيام بذلك؟

هل كانت مفيدة؟

المحلول

بعد غربلة مستندات API مرة أخرى ، تعثرت على ما قد يكون الوظيفة المناسبة:

; Returns the var or Class to which the symbol
; will be resolved in the current namespace, else nil.
  (resolve 'foo)

; see also:
  (ns-resolve *a-namespace* 'foo)

نصائح أخرى

ألق نظرة على هذه الصفحة. فمثلا

(ns-map *ns*)

سوف يعطيك خريطة للربط في مساحة الاسم الحالية. يمكنك فحص هذه الخريطة لتحديد ما إذا كان الرمز الخاص بك مفتاحًا في الخريطة ،

(defn resolvable? [sym] 
  (contains? (ns-map *ns*) sym))

لا أعرف ما إذا كان هذا هو العنوان الأساسي طريق.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top