İçinde bulunduğum Clojurescript ad alanını bir clojurescript programından nasıl alabilirim? Bunu yapmak için bazı hata ayıklama bilgilerini sağla (yalnızca dev modunda çalışmalıdır)Bir clojurescript programından içinde bulunduğum Clojurescript ad alanını nasıl alabilirim?
cevap
Ad alanları Clojure içinde oldukları gibi ClojureScript'te birinci sınıf değildir. İsim alanını çalışma zamanında almanın kesinlikle bir yolu yok. Bazı ClojureScript derleyici içeriğine erişmekten korkmazsanız, bu bilgiyi makro genişleme zamanında elde etmek mümkündür. Bunun için muhtemelen bir API olmalıydı - ama henüz orada değiliz.
Sen ::
avantajı cari ad alanında sizin için isim alanlı sembolü oluşturarak alır bu hile ile şimdiki ad, adını alabilirsiniz:
(namespace ::x)
Muhtemelen bu değeri kullanmak istemiyorum Her şey için, çünkü kod derlenmişse, içsel temsil değişecektir. Sen erişebilir makro genişleme sırasında bu
(apply str (drop-last 2 (str `_)))
: Eğer tehlikeli yaşamak istiyorsan, o zaman tarayıcıda sonra böyle ad tutan js nesne erişebilir &env
ve bunun gibi :ns
anahtarından ad bilgilerini almak:
(:ns &env)
(:name (:ns &env))
makro eski at Bu, yalnızca Pversion/derleme zamanı ve çalışma zamanında değil.
deneyebilirsiniz
(reduce (fn [ns n] (aget ns n))
js/window
(clojure.string/split (namespace ::x) #"\."))
- 1. clojurescript
- 2. ClojureScript
- 3. Clojurescript makrolarından gerekli Clojurescript kodu ile nasıl ilgilenirim?
- 4. ClojureScript REPL içinde gereksinme sözdizimi REPL
- 5. Grails + ClojureScript
- 6. ClojureScript nasıl kullanılır?
- 7. Tasarım ve ClojureScript Uygulaması
- 8. ClojureScript Parametre Beyanı Hata
- 9. stringify/ayrıştırma edn içinde Clojure/ClojureScript
- 10. Clojurescript kitaplıkları - goog.require
- 11. Clojurescript DOM arabirimi
- 12. clojurescript kullanarak knockout.js sarmalanıyor
- 13. Varolan bir codebase'e ClojureScript Ekleme
- 14. ClojureScript derleyici, aynı dizinde ad alanı/dosya bulamıyor.
- 15. Radium neden Reaktif (Clojurescript) ile çalışmıyor?
- 16. ClojureScript makro hatası: "ns-nitelikli adı tanımlanamıyor"
- 17. ClojureScript edn'in bir metin dosyası olarak düzenlenmesi (json gibi)?
- 18. Bir kaynak dosya değiştiğinde Figwheel ClojureScript kodunu değerlendirebilir mi?
- 19. Veritabanındaki ad alanını nasıl kaldırabilirim?
- 20. IIFE ad alanını nasıl korur?
- 21. Bir işlevin ad alanını nasıl belirlersiniz?
- 22. Bir C'deki ad alanını nasıl öykünebilir?
- 23. Kullanmak mümkün mü: refer: all in ClojureScript: gerektirir?
- 24. ClojureScript masaüstü uygulamasını yayınlamanın en normal yolu nedir?
- 25. Görünüm alanını kaydırmak için ScrollViewer'ımı nasıl alabilirim?
- 26. Ad alanını SOAP isteğinden kaldırma
- 27. PHP sınıfı ad alanını dinamik olarak alın
- 28. Yeni projemin ad alanını nasıl adlandırılır?
- 29. clojure içinde, geçerli ad alanının dosya adını nasıl alabilirim?
- 30. Bir ayırma sırasında ad alanını ayarlama
Teşekkürler! Ben korkuyordu bu durumda – Zubair