J'utilise rand
pour affecter une valeur de champ en tant que fonction :before-save
dans clj-record. La fonction random-str
ci-dessous est utilisée pour générer la valeur.clj-record: quand est: before-save appelé?
(def VALID-CHARS
(map char (concat (range 48 58) ; 0-9
(range 65 91) ; A-Z
(range 97 123)))) ; a-z
(defn random-char []
(nth VALID-CHARS (rand (count VALID-CHARS))))
(defn random-str [length]
(apply str (take length (repeatedly random-char))))
Lorsque j'utilise ensuite la carte retournée du CLJ recordcreate
functon, la valeur de ce champ est différent de ce qui est dans la base de données. Est-ce que cela signifie qu'il y a une certaine fainéantise d'évaluation paresseuse? Est-ce que random-str
est appelé plusieurs fois?
psst. (defn random-char [] (rand-nth VALID-CHARS)) –