配列の要素の削除について
回答済みお世話になっております。
配列の要素を削除する方法について質問があります。
以下の内容でジョブを実行すると、「不正なオブジェクト:'None'は実行不可です」とエラーが出力されてしまいます。
[ test = [ "a", "b", "c"]] ->
[ test.del_item(0) ] ->
print(test)
testの要素を[ "b", "c" ]に変更したいのですが、正しい書き方がありましたら教えていただきたいです。
-
正式なコメント
フィックスポイントの高橋です。
投稿いただいたジョブフローを実行したとき、「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オブジェクトのメソッドの場合、引数リストをパラメータとして、そのメソッドを呼び出します。
参考になさってみてください。
コメントアクション
サインインしてコメントを残してください。
コメント
2件のコメント