日本語プログラミング言語なでしこの公式掲示板

なでしこ3 質問

トップ 新規 検索

2022-12-16 17:19:50

Re③:なでしこさんで関数の引数に初期値を設定する方法

ユメミノウツツ さん

解決し忘れました。解決!
あああ、できないんですね!!!!!ありがとうございます・・・
うーん、本当にやりたかったらJSでプラグイン書いてデフォルト引数を指定する・・・とか・・・なんですかね・・・?うーん、厳しいです・・・
とりあえずまあどうにかしたいと思います・・・


 これよ、これこれ! したいですよねー!!!
 結論から言うと、出来ないです😭

 まず、やりたいことの例のように、引数が一つの場合は、ご想像の通り自動的に「それ」が補完されてしまいます。
 引数が二つ以上ある場合ですが、第二引数以降の引数が一つだけ省略された場合に、空ということになって動作します。
 それで、これは想定外の抜け道的なことで推奨はマッタクされないのですが、ワタシがよくやっているのは、必ず必要となる引数を第一引数に置いて
#--------
それで表示テスト
●(AでSを)表示テストとは
    もし、S=空ならば、S=「テスト」
  Sを表示。 
ここまで。
#--------
 みたいな?w(例がてきとー過ぎますがSが省略出来ていることが分かると思います)
 引数を二つ以上省略するとエラーなるので、第一引数のそれの補完と同時に省略することは出来ないし、第二引数と第三引数を同時に省略することも出来ません。
 あと、過去に一度、引数が不足の時にエラーを出すよう修正(!)されて全滅したのでほんとオススメはしないです~。
 その時issueでぼやきたおしたら(issueはぼやく場所ではナイ;)引数省略指定の導入に前向きな発言が得られたのですが、いっこうに実装される気配はないのでおそらくそう簡単なアレではないのかも😢
 その代わりというかなんというか、その後エラーは再び出なくなり、前述のような形で動作するようになったので、いちおう引数省略指定が導入出来るまではこの状態が維持して頂けるものと信じて、またコッソリ使っているワタクシです。

タイトル通りです。
なでしこ1では({=1}Aで)とかってすると引数Aが省略された場合A=1になるはずですが、なでしこさんだとこういうことってできますか?
引数が1個のとき、省略すると「それ」が引数に代入されるらしいので、そういうことってできないのかなぁ・・・?

【やりたいことの例】
●(Sを)表示テストとは
  Sを表示。 //もし引数が省略されてたら、S=「テスト」と表示されるように引数の初期値を設定する方法が知りたい。
ここまで。




(編集パスワード送信)

子記事

親記事 (No.1551)
返信した記事(元) (No.1553)

この内容(No.1554)に返信

この内容(No.1554)をダウンロード

この内容(No.1554)のテキスト表示





www.eznavi.net