我想提供一些以:字符开头的clojure协议的方法。有什么方法可以在Clojure中覆盖这个吗?我可以使用以“:”开头的方法来定义Clojure协议吗?
2
A
回答
3
不这样认为。 Clojure关键字是在读者中实现的,我不认为有任何方法可以重写这种行为。
当您使用关键字作为函数时,相当于(get arg:keyword)。你可以扩展你在协议中实现ILookup的功能。
Joost。
3
听起来像一个坏主意:冒号留给关键字,所以即使你可以这样做,我认为这会造成一些令人困惑的代码。
你当然也可以,把一个函数所涉及的关键词映射记录中:
(defrecord Foo [])
(def foo (Foo. nil {:method (fn [a b] (* a b))}))
((:method foo) 7 10)
=> 70
我发现这是有时一个有用的技巧......
相关问题
- 1. 我可以使用PHP使用自定义协议吗?
- 2. 可以;定义和使用协议
- 3. 使用Unoffical Airplay协议可以吗?
- 4. 我可以在Delphi中创建自定义HTTP协议吗?
- 5. 我可以在Objective-C协议中公布类方法吗?
- 6. 你可以发布到用户定义的协议URL吗?
- 7. apache httpcomponent和sftp协议 - 协议可以使用吗?
- 8. 我们可以使用http代理使用AMQP协议吗?
- 9. 可以使用点符号来定义void方法吗?
- 10. 我可以使用协议对象作为NSDictionary中的键吗?
- 11. 我可以使用协议相关的<base>标签吗?
- 12. AJAX可以使用HTTP或HTTPS以外的协议吗?
- 13. 我可以在Nginx中使用Clojure吗?
- 14. 我可以使用andFilterWhere([])搜索以?开头的所有值吗?
- 15. 我可以更新协议扩展中的指定属性吗?
- 16. 我可以在协议中使用init func吗?
- 17. 我可以使用高级消息队列协议(AMQP)吗?
- 18. 我可以在WHERE语句中使用自定义方法吗?
- 19. 我可以使用Module#定义类方法吗?
- 20. 在Java 8中可以使用方法引用来定义/实现方法吗?
- 21. 我可以在NSArray上使用自定义类方法来返回常量吗?
- 22. 可以协议缓冲区被用来实现一个第三方协议
- 23. 我可以使用具有指定关联类型的协议吗?
- 24. 我可以在Clojure中部分调用Java方法吗?
- 25. AIR应用程序可以编程来处理URL协议吗?
- 26. 以下Clojure协议有什么问题?
- 27. Swift协议可以是单身吗?
- 28. 我可以使用phonegap调用我自定义的Objective C类的方法吗?
- 29. USART协议设备可以与UART协议设备连接吗?
- 30. 我可以使用私人方法吗?