小编pes*_*lla的帖子

如何卸载GVM

我使用GVM来管理我的Groovy/Grails环境.

如何卸载GVM以及当前安装的所有候选项?

我怀疑只会删除~/.gvm目录.令人惊讶的是,GVM网站似乎没有提到如何做到这一点,也没有文件来确认如何做到这一点.

grails groovy gvm

17
推荐指数
2
解决办法
2万
查看次数

是否有一种惯用的方法来避免长Clojure字符串文字?

各种Clojure风格指南建议避免使用超过80个字符的行.我想知道是否有一种惯用的方法来避免长String文字.

虽然这些日子通常有宽屏幕,但我仍然同意应该避免长线.

以下是一些例子(我很想跟随第一个例子):

;; break the String literal with `str`
(println (str
    "The quick brown fox "
    "jumps over the lazy dog"))

;; break the String literal with `join`
(println (join " " [
    "The quick brown fox"
    "jumps over the lazy dog"]))
Run Code Online (Sandbox Code Playgroud)

我知道Clojure支持多行String文字,但使用这种方法会有解释换行符的不良影响,例如使用repl:

user=> (println "The quick brown fox
  #_=>   jumps over the lazy dog")
The quick brown fox
  jumps over the lazy dog
Run Code Online (Sandbox Code Playgroud)

idiomatic clojure

14
推荐指数
1
解决办法
2614
查看次数

Dynamo DB:全局二级索引,稀疏索引

我正在考虑利用AWS指南中所述的稀疏索引。在所述示例中-

...在GameScores表中,某些玩家可能已经为游戏赢得了特定成就-例如“冠军”-但大多数玩家却没有。无需在整个GameScores表中扫描Champ,而是可以创建一个具有Champ分区键和UserId排序键的全局二级索引。

我的问题是:当冠军数量增加时会发生什么?我想“ Champ”分区将变得非常大,您将开始遇到负载分配不均的问题。为了得到均匀的负荷分布,我需要通过随机化(有效)的“冠军”价值超过分片n碎片,例如Champ.0Champ.1... Champ.99

或者,在获取具有随时间而增长的特定属性的实体时,是否可以使用不同的访问模式?

amazon-web-services amazon-dynamodb

5
推荐指数
1
解决办法
888
查看次数

验证值是否是一组可能值之一的最佳方法是什么?

在Clojure中,验证值是否是一组可能值之一的惯用方法是什么?

我最初做了这样的事情:

(let [size :grande]
  (make-latte (condp = size
                :tall :tall
                :grande :grande)))
Run Code Online (Sandbox Code Playgroud)

以上是有用的,因为如果没有子句匹配IllegalArgumentException则抛出.

但后来我发现这样做更舒服:

(let [size :grande]
  (make-latte (or (some #{:tall :grande} [size])
                  (throw (IllegalArgumentException. "I don't know that size")))
Run Code Online (Sandbox Code Playgroud)

这种技术很有效,因为它允许更多可能的值,例如

(some #{:short :tall :grande :venti} [size])
Run Code Online (Sandbox Code Playgroud)

最好的方法是什么?我是否认为clojure.core没有这样做的功能?

clojure

1
推荐指数
1
解决办法
94
查看次数