4

java.lang.IllegalArgumentException: No value supplied for key:Clojure コードで を取得しています。

引数として渡されたマッピングでキーを分解しようとすると、これが起こることを知っています。

ただし、ここで奇妙なのは、この関数が何年もの間、同じデータで正常に機能していることです。そして、違うように見える唯一のことは、関数をインポートする方法です

エラーは次のとおりです。

Caused by: java.lang.IllegalArgumentException: No value supplied for key: 
{:style {:color [255 150 150 255], :stroke-weight 2}, :points [[-1 0] [0 -1] [1 0] [0 1] [-1 0]]}

そして、これがそれを投げた関数です。

(defn scale
  [val {:keys [style points]}]
  {:style style
   :points (scale-shape val points)})

つまり、マップに and というキーを含めるように求めており、 and というキーstyleを含むpointsマップが与えられています。stylepoints

そして、このコードは何ヶ月もうまく機能しています。

違いは、インポートされたsshapes/scale場所を使用して呼び出していることです。sshapes

 (:require [patterning.sshapes :as sshapes])

以前はscale、スケールが名前空間に入った場所としてそれを呼び出していました

 (:require [patterning.sshapes :refer :all])

これはその種のエラーを引き起こす可能性がありますか?

4

1 に答える 1