Bir bağlama nesnesinin içinde bir alt çizgi ne yapar, bu yüzden (let [a blabla _ (println a)] etc....
yazıyorsa bu alt çizgi anahtar kelimenin yerinde ne yapıyor?Clojure'ın ciltleme biçimindeki alt çizgi kullanımı nedir?
cevap
Alt çizgi evrensel göz ardı simgesidir.
İzin verilen formdaki her sexp için bir dönüş değeri olmalıdır ve println
nil değerini döndürür, böylece kişilere dönüşü göz ardı ettiğinizi ve bu noktada hata ayıklama yaptığınızı bildirmek için _
olarak ayarlayabilirsiniz. Örneğin.
(let [foo (+ 1 2)
_ (println "debug! foo is" foo)
_ (println "more debug!" (+ 1 foo)]
foo)
sexp her değerlendirme değerine _
döndü setleri, ama o kadar sadece gibi okumak, gerekli değil. Eğer size may kullanımını _
kullanarak olmayacak bir tanımlayıcı vardır, ama ne zaman Geleneksel olarak
(let [_ 1]
(println _))
=> 1
öyle: Bu örnek kod tarafından görebileceğiniz gibi
harika, teşekkürler. Yani sadece boşluk doldurma ve hata ayıklama uğruna mı? - – amirteymuri
Evet, sadece yan etkiler –
Terminoloji üzerine bir not: _ bir değer değil, bir sembol. (class (quote _)), clojure.lang.Symbol 'i döndürür. Semboller alıntılanmalı veya eVALUE olsun (sınıf _), alt-çizgilerin şu anda bağlı olduğu değerin sınıfını döndürecektir. – JBiserkov
alt çizgi, geçerli bir sembol kimliğidir zorunlu değil.
bunun dışındakistrüktür durumlara da olur (senin durumunda println
çizgi böylece bir sembol ile sonuç bağlayıcı olmayacak nil
döner) hem örnekteki gibi yan etki durumlar için Olur Bazı değerlere ihtiyacım var. Eğer 2. ve 3. değerler ilgilenmiyoruz Bu durumda
(let [[a _ _ d] [1 2 3 4]]
(println a))
=> 1
, böylece tanımlayıcı
_
umursamıyorsun söylediğim için deyimseldir. Düzenli Clojure'da
_
alt çizgisi, başka herhangi bir sembol gibi (örn. "Önemsiz") ele alınır. Ancak bazı kütüphanelerde özel bir anlamı vardır. Örneğin, Datomic'te
_
, ciltlemeyi/birleştirmeyi engelleyen bir "joker" gibi kabul edilir. Clojure.core.match dosyasında,
_
da bir joker karakter olarak kabul edilir.
bakınız: 'Kullanıcı => (izin [a (5 (aralık)) {alır: tuşları [BCD
- Datomic Query burada
- clojure.core.match
harika değiştirdim, teşekkür ederim. Yani sadece boşluk doldurma ve hata ayıklama uğruna mı? – amirteymuri
Sanırım bunu söyleyebilirsin –
- 1. Sınıf adıyla birleştirilen alt çizgi nedir?
- 2. WaitCallback'deki alt çizgi anlamı
- 3. Adlandırılmış Argümanlar'da Alt Çizgi
- 4. jQuery.data ve jQuery._data (alt çizgi verileri) arasındaki fark nedir?
- 5. Dalgalı kırmızı alt çizgi özelliğini
- 6. Alt çizgi sembolü nasıl gösterilir?
- 7. Başlangıçta çift alt çizgi anlamı
- 8. ExUnit testlerinde alt çizgi (_) kullanın
- 9. Android: MediaController'ın AnchorView kullanımı nedir?
- 10. Bu durumda alt çizgi ne anlama geliyor?
- 11. Feholdexcept vb. Kullanımı nedir?
- 12. mongo.lock dosyasının kullanımı nedir?
- 13. Entitlements.plist dosyasının kullanımı nedir?
- 14. SingletonList kullanımı nedir?
- 15. LOCAL_MODULE_TAGS kullanımı nedir?
- 16. Android'de SQLiteDatabase.CursorFactory kullanımı nedir?
- 17. Android'de BaseColumns kullanımı nedir
- 18. pthread'de PTHREAD_CREATE_JOINABLE kullanımı nedir?
- 19. "??" ifadesinin kullanımı nedir?
- 20. "const" kullanımı nedir?
- 21. biçimindeki pandalar biçimindeki çıktı verileri to_html
- 22. Sanal dizin nedir? Bunun kullanımı nedir?
- 23. Bir bağlantıdan alt çizgi nasıl kaldırılır ve üzerine alt çizgi eklenir? (ekli görüntüler)
- 24. alt çizgi, textarea değerlerinden nasıl kaldırılır?
- 25. ASP.NET MVC Dosya adları alt çizgi
- 26. Matplotlib backend eksik modülleri alt çizgi
- 27. Birden çok alt çizgi içeren metin
- 28. Android TextView bağlantı alt çizgi olmadan?
- 29. Java'da sayılarla alt çizgi nasıl yazılır?
- 30. Knitr'de alt çizgi geçişi R kodu
daha conceret örnektir ]: veya {d 10 b 20 c 30}} {: c 50: d 100} [efg & h] ["a" "b" "c" "d" "e"] _ (println "Ben burada! ") foo 12 bar (+ foo 100)] [a b c d e f g h foo bar]) Buradaydım! [(0 1 2 3 4) 20 50 100 "a" "b" "c" ("d" "e") 12 112] ' – amirteymuri