stuncloud / UWSCR

UWSC互換スクリプト実行ツール
MIT License
50 stars 5 forks source link

複数行if文のマルチステートメントについて。 #183

Open DIYJii opened 4 months ago

DIYJii commented 4 months ago

種別

質問

対象ページ

スクリプト構文

報告内容

マニュアルに、複数行ifで始まる文をマルチステートメント形式で書く事が出来る旨の記述が無い。

UWSC経験者にとっては、

<マルチステートメント>  ; (セミコロン)   // N88Basic的な1行IF文での使い方はダメ

との呪文が掛かっていますので、 言ってもらわないと折角のUWSCRでの改善が、使われず終いになってしまいます。

stuncloud commented 4 months ago

サンプルにif文も追加します

仕様上できるというだけで改善という認識は皆無でした

@DIYJii さんが書けることに気づいたということは

呪文が掛かっていますので、 言ってもらわないと折角のUWSCRでの改善が、使われず終いになって

しまうことはすでに否定されてる気がするので、まあサンプルだけあれば呪文が掛かった人には通じるでしょう


僕としてはこの記述は仕様的に書けるけど書くべきではない部類の構文なので、書いてもらわないほうがありがたいかな…という気持ちはあります なんならこの機能の存在が他の様々なユーザー補助機能の実装を妨げ大変な苦労を余儀なくされたことから恨みすらある :(

DIYJii commented 4 months ago

ユーザー目線では、UWSCの時は、メイン処理から外れる簡単なIf・・EndIf文は1行で書けた方がスッキリするのになーと思う事がよく有ったので、UWSCRでは改善されたと感じました。他にも、そんな人が居るだろうとの想いで書いた次第。 でも、解りました。偶然知った人は、使っても良いけど、at your own risk で使って下さいと云う物も有ると云う事ですね。

ついでに、If hoge Then の Then 無しでも正常に処理される事も其の類ですかね?

On Fri, Jun 7, 2024 at 2:40 PM Joey Takahashi @.***> wrote:

サンプルにif文も追加します

仕様上できるというだけで改善という認識は皆無でした

@DIYJii https://github.com/DIYJii さんが書けることに気づいたということは

呪文が掛かっていますので、 言ってもらわないと折角のUWSCRでの改善が、使われず終いになって

しまうことはすでに否定されてる気がするので、まあサンプルだけあれば呪文が掛かった人には通じるでしょう

僕としてはこの記述は仕様的に書けるけど書くべきではない部類の構文なので、書いてもらわないほうがありがたいかな…という気持ちはあります なんならこの機能の存在が他の様々なユーザー補助機能の実装を妨げ大変な苦労を余儀なくされたことから恨みすらある :(

— Reply to this email directly, view it on GitHub https://github.com/stuncloud/UWSCR/issues/183#issuecomment-2154110116, or unsubscribe https://github.com/notifications/unsubscribe-auth/BH6AXYW7TTYJ6EQDF5PWQRTZGFBV5AVCNFSM6AAAAABI56RTQWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDCNJUGEYTAMJRGY . You are receiving this because you were mentioned.Message ID: @.***>

stuncloud commented 4 months ago

hoge Then の Then 無しでも正常に処理される事も其の類ですかね?

そうですね なんでUWSCはthenを省略できたのかはわかりませんが、おかげでUWSCRではあえてそのような実装をすることになりました thenなしはもしかすると不具合が出るかもしれなくて怖いんですよね

DIYJii commented 4 months ago

そうですか、Then無しの件、実は私も気持ち悪りーと思っていました。 今の処、不都合が生じるケースは見付かっていませんけど、いずれにしろ節操の無い書き方だと感じています。 これは、流行らない方が良いですね。私は本題の方もこれでOKですので、そちらで,Closeして下さい。

On Fri, Jun 7, 2024 at 5:14 PM Joey Takahashi @.***> wrote:

hoge Then の Then 無しでも正常に処理される事も其の類ですかね?

そうですね なんでUWSCはthenを省略できたのかはわかりませんが、おかげでUWSCRではあえてそのような実装をすることになりました thenなしはもしかすると不具合が出るかもしれなくて怖いんですよね

— Reply to this email directly, view it on GitHub https://github.com/stuncloud/UWSCR/issues/183#issuecomment-2154326408, or unsubscribe https://github.com/notifications/unsubscribe-auth/BH6AXYQ6GUXPDT5M2ZBATJTZGFTVZAVCNFSM6AAAAABI56RTQWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDCNJUGMZDMNBQHA . You are receiving this because you were mentioned.Message ID: @.***>

stuncloud commented 3 months ago

@DIYJii 以下についてUWSCではダメでUWSCRで動く具体例を教えて下さい (そもそもダメというのがどういう状態になることなのかもわかりません)

<マルチステートメント>  ; (セミコロン)   // N88Basic的な1行IF文での使い方はダメ

DIYJii commented 3 months ago

<マルチステートメント> この件は、UWSCマニュアルの<マルチステートメント>のセクションで、うにうにさんがその使い方をするのはダメと言っています。 ですから、単に今迄はそのような書き方はして来ませんでした。 以下が、お尋ねの一例になります。

a = 1 If a Then ; print "a = True" ; print "a <> False" ; Else ; Print "a = False"; endif

UWSCでは If行のマルチ宣言はNG と言ってきます UWSCRでは a = True a <> False とPrint して呉れます。

素晴らしい! スクリプトの行数が減って、その構造が分かり易くなって助かります。

ついでに

a = 1 If a ; print "a = True" ; print "a <> False" ; Else ; Print "a = False"; endif

と、Then 無しでもOKなのですね。(何となく、ちょっと危ない気がしますが)

On Fri, Jul 5, 2024 at 12:14 PM Joey Takahashi @.***> wrote:

@DIYJii https://github.com/DIYJii 以下についてUWSCではダメでUWSCRで動く具体例を教えて下さい (そもそもダメというのがどういう状態になることなのかもわかりません)

<マルチステートメント> ; (セミコロン) // N88Basic的な1行IF文での使い方はダメ

— Reply to this email directly, view it on GitHub https://github.com/stuncloud/UWSCR/issues/183#issuecomment-2209913997, or unsubscribe https://github.com/notifications/unsubscribe-auth/BH6AXYT3BXJHWK4IRQXQ4ITZKYFPTAVCNFSM6AAAAABI56RTQWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDEMBZHEYTGOJZG4 . You are receiving this because you were mentioned.Message ID: @.***>