最近、構造体に型制限を追加することができましたが、何らかの理由で0.0
を正当なデフォルト値として使用できません短い浮動小数点数は、それでも100.0
を許可します。フィールドはSHORT-FLOAT型ではなく値(0.0)に評価されました
は、私はCLISPにship
構造体のインスタンスを作るためにmake-ship
を実行しようとすると、次のエラーを取得する:
[4]> (make-ship)
*** - THE: #:ENERGY evaluated to the values (0.0), not of type SHORT-FLOAT
The following restarts are available:
ABORT :R1 Abort main loop
は誰かが正確に何が起こっているかを説明することができ、そしてなぜ私はに許可されていませんよ0.0を使用しますか?ここで
が誤動作コードです:
(defstruct ship
location ;; fields like these have an undecided type at the moment
(energy 0.0 :type short-float)
cargo
crew
shields
(hull-integrity 100.0 :type short-float))
詳しい説明はありませんが、さまざまな接尾辞(たとえば、「0.0d」など)を試してみましたか? –
@JoshuaTaylor私は接尾辞が何かさえわからなかった... –
http://www.lispworks.com/documentation/HyperSpec/Body/02_cbb.htmを参照してください。私は働くべきだと思う。 –