Open DIYJii opened 2 months ago
パラメータがないときのPARAM_STR
インデックス呼び出しはUWSCでもエラーになっていた記憶があり、UWSCでPARAM_STR
を使う場合は必ずlength(PARAM_STR)
で有無を確認するようにしてたんですが今見るとEMPTYを返していますね…
PARAM_STR
に限り範囲外ならEMPTYを返すようにします
Object::ParamStr(ParamStr)
を追加ParamStr
を新設struct ParamStr(Vec<String>);
impl ParamStr {
fn get(index: usize) -> Option<String> {
todo!()
}
}
超速の回答有難うございます。
On Fri, Jul 12, 2024 at 1:42 PM Joey Takahashi @.***> wrote:
パラメータがないときのPARAM_STRインデックス呼び出しはUWSCでもエラーになっていた記憶があり、UWSCでPARAM_STRを使う場合は必ず length(PARAM_STR)で有無を確認するようにしてたんですが今見るとEMPTYを返していますね…
PARAM_STRに限り範囲外ならEMPTYを返すようにします 対策
- Object::ParamStr(ParamStr) を追加
- ParamStrを新設
struct ParamStr(Vec
);impl ParamStr { fn get(index: usize) -> Option { todo!() }}
- call対応も考える
— Reply to this email directly, view it on GitHub https://github.com/stuncloud/UWSCR/issues/189#issuecomment-2224586628, or unsubscribe https://github.com/notifications/unsubscribe-auth/BH6AXYRQAPJ3UW47CUJJYQDZL5NDJAVCNFSM6AAAAABKYDWAYWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDEMRUGU4DMNRSHA . You are receiving this because you authored the thread.Message ID: @.***>
概要
スクリプトで起動時のパラメータを調べようとすると、無入力の場合以下のエラーになる。
WSCR実行時エラー test.uws 1行目: Print PARAM_STR[x] [評価エラー] インデックスが範囲外です (x)
パラメータ入力無しの場合はDefault適用という書き方も有るので、エラーにしない方が良いと思います。 ちなみに、UWSCではエラーとはならず、 Empty/"" が返されます。
再現スクリプト
No response
再現手順
No response
回避方法
Para = Function(x) If x <= Length(PARAM_STR) -1 Then RESULT = PARAM_STR[x] Else RESULT = Empty FEND
Para(x)と書けばPARAM_STR[x]が取得出来ます。xが無入力パラメータを指す場合はEmptyが返ります。
備考
無名関数、なかなか良いじゃないですか! 最初は、普通の関数で書こうとしたのですが、PARAM_STRがPublicではないので直接アクセス出来ない事に気付き、ひょっとして無名関数ならOKかなと思ってトライしてみたら、そこら辺にあるLocal変数、何でも好きに出来るじゃないですか。普通の関数だと、引数渡しやPublic宣言やらで、アクセス出来るようにするのが面倒でしょうがなかったのが・・・これは良いわ! それに、わざわざリスト上遠く離れた所にある関数の中身を確かめに行かなくても、すぐそばに居るし。コンパクトに作れるし。 ここら辺の便利さは、今のマニュアルでは判らないので、もっと宣伝した方が良いですよ。
バージョン
1.0.1
不具合発生環境
No response