我正在尝试使用随机函数确定的键创建地图文字:
user=> {(str (rand-int 5)) "hello" (str (rand-int 5)) "goodbye"}
IllegalArgumentException Duplicate key: (str (rand-int 5)) clojure.lang.PersistentArrayMap.createWithCheck (PersistentArrayMap.java:71)
Run Code Online (Sandbox Code Playgroud)
而
user=> {(str (rand-int 5)) "hello" (str (rand-int 6)) "goodbye"}
{"4" "hello", "2" "goodbye"}
Run Code Online (Sandbox Code Playgroud)
Reader似乎将密钥视为未评估列表.
我在文档中找不到任何有关此内容的详细信息.有没有人可以帮我理解这一点?
这样做有什么区别吗?
class Bus::Driver
end
Run Code Online (Sandbox Code Playgroud)
和
module Bus
class Driver
end
end
Run Code Online (Sandbox Code Playgroud)
如果不是,首选哪种语法?
我的依赖项列表中有一个Gem,它是String上的Monkey Patching to_json.
我如何计算这个猴子修补的位置?
我试图尽可能地封装我的类.我不应该像这样使用send方法的任何原因?
class MyClass
def self.join_two_strings(first, second)
new.send(:join_two_strings, first, second)
end
def join_two_strings(first, second)
first + second
end
private :join_two_strings
end
Run Code Online (Sandbox Code Playgroud)