通訳者がこれを受け入れない理由を理解するのに問題があります。
Object co = current Object
Object o = object(co."Absolute Number")
エラーは次のとおりです: 「関数 (オブジェクト) の引数が正しくありません」 /
「トークンが正しく連結されていません」。によって返される型が、DXL マニュアルに従って宣言されているようにco."Absolute Number"
、期待どおりに一致することを確認しました。Object object(int absno[, Module m])
print type(co."Absolute Number")
"Integer"を出力します。一見問題ないように見えますが、明らかにそうではありません。
その特定の属性の問題ではありません。co."Object Text"
文字列を返す必要がありますが、その属性でも、インタープリターはデータ型を認識しません。
さまざまな場所にブラケットを追加しても役に立ちません。返された属性値を明示的に整数に変換しようとしても役に立ちません。何が役立つかは、戻り値を整数変数に格納することです:
Object co = current Object
int no = co."Absolute Number"
Object o = object(no)
未使用の変数が導入されるため、私は好きではありません。同様に機能するのは、標準の文字列アプローチを使用することです: 属性値を文字列に変換してから (元に) 整数に変換します。
Object o = object(intOf(co."Absolute Number" ""))
しかし、それは私にとってかなりハックです。私は何を見落としましたか?