Ich habe (not (some #(= (:length %1) 0) %))
als Nachbedingung. So geschrieben, ist es ziemlich klar, aber wenn diese Bedingung nicht erfüllt ist, bekomme ich das:
Was nicht gut lesbar ist. Gibt es eine Möglichkeit, die Nachricht für eine Nachbedingung oder für eine Vorbedingung zu definieren?
Bearbeiten 1:
Nach noahlz und noisemiths suggestion (aber mit einer externen benannten Funktion):
%Vor%gibt:
%Vor%Was viel klarer ist.
Dies wird in der folgenden clojure Mailingliste thread besprochen.
Mit Blick auf die clojure.core Quelle können Sie Das FN-Makro wird nur in einem booleschen Wert an die assert-Funktion übergeben und enthält keinen optionalen Parameter für die Übergabe eines zusätzlichen Nachrichtenarguments.
Es sieht also so aus, als ob es noch keine Möglichkeit gibt, das sauber zu machen.
erweitert einen Vorschlag oben:
%Vor%Wenn Sie eine anonyme Funktion benennen, werden alle Fehler, die mit diesem fn verbunden sind, besser lesbar gemacht.
auch, wie ist es, dass Sie zwei% Substitutionen oben haben? # () verschachtelt nicht.
Tags und Links clojure error-handling