配列の要素の削除について

回答済み

コメント

2件のコメント

  • 正式なコメント
    Ichiro Takahashi

    フィックスポイントの高橋です。

    投稿いただいたジョブフローを実行したとき、「aborted at line 2 in ~~」と2行目でエラーになっていることを示す表示がなされていたかと思います。

    2行目は「実行ジョブ」の形式になっていて "[" と "]" の間の結果に応じた処理を行ないます。たとえば文字列であればコマンドとして実行する、ということになります。

    例では、配列 test の 0 番目の要素を del_item メソッドを使って削除はできているのですが、このメソッドの結果は常に null になります。この結果の null を実行ジョブに渡していることになりますが、実行ジョブでは null は実行できない値(不正なオブジェクト)としてエラーとなっています。

    実行ジョブで実行させたいのは配列 test の del_item メソッドである、と考えてみてください。そうすると、以下のように2行目を書き換えることができます。

    [ test = [ "a", "b", "c"]] ->
    [ test.del_item: 0 ] ->
    print(test)

    実行ジョブで del_item メソッドをパラメータ 0 で呼び出す、ということになり、期待通りの結果が得られるかと思います。

    これは、マニュアル 4.6.2. 「実行ジョブ」の以下に該当する使いかたになります。

    • 1番目の式を評価した結果が、Kompiraオブジェクトのメソッドの場合、引数リストをパラメータとして、そのメソッドを呼び出します。

    参考になさってみてください。

    コメントアクション パーマリンク
  • ak

    ご回答ありがとうございます。

    ご教示いただいた通り実行したところ、正常に動作いたしました。

    ありがとうございました。

    0
    コメントアクション パーマリンク

サインインしてコメントを残してください。