Tôi muốn xem một biểu tượng đã được "def" ed, nhưng tôi không thể nhìn thấy bất kỳ cú pháp ifdefTrong clojure làm thế nào tôi có thể kiểm tra nếu một biểu tượng đã được xác định?
Trả lời
user> (resolve 'foo)
nil
user> (def foo 3)
#'user/foo
user> (resolve 'foo)
#'user/foo
resolve
hoặc ns-resolve
có thể làm những gì bạn đang tìm kiếm:
user> (def a 1)
#'user/a
user> (def b)
#'user/b
user> (resolve 'a)
#'user/a
user> (resolve 'b)
#'user/b
user> (resolve 'c)
nil
để có được một boolean:
user> (boolean (resolve 'b))
true
EDIT: theo nhận xét của MayDaniel, đây không phải là chính xác những gì bạn yêu cầu, nhưng nó sẽ giúp bạn có được ở đó. Dưới đây là một thực hiện bounded?
(có lẽ không phải là tên tốt nhất):
(defn bounded? [sym]
(if-let [v (resolve sym)]
(bound? v)
false))
user> (map bounded? ['a 'b 'c])
(true false false)
Vâng, không. 'b được giải quyết, nhưng nó không bị ràng buộc. Đây không phải là những gì người hỏi muốn. – MayDaniel
Bạn nói đúng. Sửa đổi –
Tôi nghĩ rằng nó sẽ là hiếm hoi mà một trong những thực sự sẽ cần 'true' và' false'. Vì 'resolve' trả về giá trị trung thực nếu biểu tượng bị ràng buộc và giá trị falsey,' nil', nếu nó không được gắn kết, người ta thường có thể sử dụng 'resolve' như là. '(if (resolve 'c)" Biểu tượng bị ràng buộc, dude. "" Whaa ?? Ký hiệu đó không bị ràng buộc! ")' – Mars
có thể sử dụng tìm-var cho điều này
(bound? (find-var 'user/y))
Điều này trả về một ngoại lệ con trỏ null nếu 'y' bị hủy trong' user', bởi vì 'find- var' trả về 'nil' trong trường hợp đó. – Mars
- 1. Kiểm tra xem biểu tượng có được xác định là
- 2. làm thế nào tôi có thể kiểm tra nếu một đối tượng tồn tại trong C++
- 3. Kiểm tra nếu một biến được xác định trong javascript?
- 4. làm thế nào để kiểm tra nếu một đối tượng clojure là một mảng byte?
- 5. Làm cách nào tôi có thể kiểm tra bashrc của tôi nếu một bí danh đã được đặt
- 6. Làm thế nào tôi có thể kiểm tra nếu một tập tin ghi đã thành công trong PHP?
- 7. Làm thế nào để kiểm tra xem đối tượng "isEmpty()" nếu Object.prototype đã được sửa đổi?
- 8. Làm thế nào tôi có thể kiểm tra một loại nhất định đã được xác định trong trình biên dịch C?
- 9. Làm thế nào tôi có thể kiểm tra các lỗi không xác định trong mocha?
- 10. Làm thế nào tôi có thể kiểm tra mã bytecode JVM cho một chức năng clojure?
- 11. kiểm tra nếu một thuộc tính MSBuild được xác định?
- 12. Android: Làm thế nào tôi có thể kiểm tra một mục cụ thể trong một ListView được kiểm tra?
- 13. Làm thế nào tôi có thể kiểm tra nếu một đối tượng là null trong ruby trên đường ray 2?
- 14. Làm thế nào để kiểm tra xem một đối tượng được xác định?
- 15. Trong Jinja2, làm thế nào để bạn kiểm tra nếu một biến không xác định?
- 16. Làm thế nào để lập trình kiểm tra nếu một ứng dụng đã treo trong VB.NET
- 17. Làm thế nào tôi có thể kiểm tra nếu một enum được xác định hay không trong khi bỏ qua trường hợp?
- 18. Làm thế nào tôi có thể xác định xem một phương pháp trừu tượng có được triển khai không?
- 19. Kiểm tra nếu biến thuận tiện gdb được xác định
- 20. Trong cmake, làm thế nào tôi có thể kiểm tra nếu trình biên dịch là Clang?
- 21. Kiểm tra xem hằng số đã được xác định chưa
- 22. Làm thế nào tôi có thể kiểm tra một đối tượng bên trong một phương thức trong Objective-C?
- 23. Làm thế nào để xác định trong Mercurial, nếu changeset, được chỉ định bởi sửa đổi, đã được ghép chưa?
- 24. Cú pháp nào sẽ kiểm tra nếu một tên biến chứa dấu cách được xác định?
- 25. Kiểm tra nếu đối tượng IndexedDBStore đã chứa khóa
- 26. Làm thế nào để kiểm tra xem một đối tượng đã được sửa đổi
- 27. bitmask: làm thế nào để xác định nếu chỉ có một bit được thiết lập
- 28. Làm thế nào tôi có thể gọi tái diễn nếu có điều kiện trong Clojure?
- 29. Kiểm tra mã jQuery/Javascript, nếu chưa được xác định
- 30. Trong Clojure, làm thế nào để xác định một biến được đặt tên bởi một chuỗi?
Brilliant, làm việc lần đầu tiên. Cảm ơn! :) – Zubair