そもそも、C感覚云々って言ったら Dim A, B As Long とかやって、Aがバリアント型になってる動くけど潜在バグを持ったコードとか有りますし、結局言語仕様を把握した上で頭を切り替えるのは必須かと。 # VB6.0以前/VBAの場合。VB.NETはC/C++のようにA,B共にLong型になるので、VB.NET触っててVBA書いた時にもやらかしやすい。 # 本来なら単体デバッグで自分で見つけないといけないような初歩ミス。 それらを防ぐのはコーディング規約であったり、コードレビュー時に仕様の落とし穴をチェックすれば良いかと。
仕事できない屑(例えば文系)が (スコア:-1)
俺はこんな風に組まない、こういう組み方知らない。
ってだけのソースをウンココードとして投稿するんじゃねーの?
と思って見に行ったら、そういうコードが既に半分だった。
駄目だと言うなら、駄目をもっとちゃんと論証しなきゃね。
あぁ酷い(笑)というのも有るには有るんだけど、馬鹿が己れの馬鹿さ加減に気付かずに
他人を揶揄する(文系の何時も)そういうサイトに育ち始めてる。
自己言及 (スコア:-1)
> 駄目だと言うなら、駄目をもっとちゃんと論証しなきゃね。
と言いつつ自分は一切論証していない件
せめて具体例の1つでもあげてみたらどうよ
Re: (スコア:-1)
え? 元サイトのコメント読めよ。ここでやってどうするよ?
文系って本当に駄目だなぁ。。。
空気読めなさすぎ。
Re: (スコア:0)
#2211895に同意なんだけど、あっちで良い悪いを議論するのにtwitterのアカウントがないと駄目とかw
他人を揶揄したいだけ揶揄して自己満足したいだけのサイトに見えちゃうのがもにょりだねぇ
Re: (スコア:0)
たとえば、VBの
A=B=C
がいい例とか書かれたけど、こっちよりうんこコードの
IF B = C THEN
A = TRUE
ELSE
A = FALSE
END IF
のほうがよっぽどわかりやすい。他の言語使っているとAもBもCに代入と紛らわしい。
Re: (スコア:1)
一番左の=が特別なだけでCライクなら A = ( B == C ) ですよ。
更に言えば、変数にNullを代入可能な場合が有り、BかCがどちらか一つがNullならAはNullです。
その為、親コメントの判定条件ではAがNullとなるべきケースが漏れた適切でないコードですのでご注意を。
Re: (スコア:0)
> 一番左の=が特別なだけでCライクなら A = ( B == C ) ですよ。
それは十分承知した上での議論だと思います。
それが分からない人もいるかも知れないし、
分かっていてもCの感覚で勘違いしてしまう人もいるかも知れないし、
疲れた状態で見れば自分だって間違ってしまうかも知れないし、
(だいたい自分が一番信用ならない)、
無難な書き方が一番だと思います。
Re:自己言及 (スコア:0)
個人的にはA = ( B = C )と書くべきとは思いますが、それだけですね。
メインがC/C++言語で比較演算子が==でない事が耐えられない人が多いなら親コメントのような対処もアリかもしれませんが。
以下は個人的な見解ですが、演算子は言語によって同じ記号でも機能が変わる厄介な代物なのは常識です。
= == ===とバリエーションが有ったりしますし、優先順が異なる事も当然あります。
Nullの件もありますが、IF文に展開するとそこそこな行数になりますが保守性を落とすコピペコード量産したいですか?
当然ですが、関数等で戻り値は必ずBool値である必要等で意図的に親コメントのようなIF文でのロジックを書く場合もあります。
# 設計・テスト仕様書とコメントにもその旨書きますが
そもそもCライク言語でA=B=C;という書き方自体がNGだと個人的に思うので違和感ないのです。
この書き方をクラスに対してうっかりやったらどうなるか結果想定できます?
なので、面倒でも普段から
A=C;
B=C;
もしくは
B=C;
A=B;
と書いて自分がやりたい事を誤解されずに伝えるコーディングをするべきだと思っています。
上記例、AとBにCを代入するのか、BにCを代入し、AにBを代入の2通りに読めますよね。
そもそも、C感覚云々って言ったら
Dim A, B As Long
とかやって、Aがバリアント型になってる動くけど潜在バグを持ったコードとか有りますし、結局言語仕様を把握した上で頭を切り替えるのは必須かと。
# VB6.0以前/VBAの場合。VB.NETはC/C++のようにA,B共にLong型になるので、VB.NET触っててVBA書いた時にもやらかしやすい。
# 本来なら単体デバッグで自分で見つけないといけないような初歩ミス。
それらを防ぐのはコーディング規約であったり、コードレビュー時に仕様の落とし穴をチェックすれば良いかと。