- PR -

Javaの稀な記述法

投稿者投稿内容
よねKEN
ぬし
会議室デビュー日: 2003/08/23
投稿数: 472
投稿日時: 2007-10-18 09:22
カブトムシ子太郎さんのおっしゃる
「初心者でもわかる書き方のほうがよいのでは?」というのも一理あると思いますが、
それでもこのくらいは知っていて欲しいとも思うのでコメントします。

引用:

カブトムシ子太郎さんの書き込み (2007-10-18 03:45) より:

ソースを書くときは、少しは一般的な書き方をこころがけて
ほしいですね。可読性も増しますし・・・。



自分が同じ状況でそのように書くかどうかは別にして、

loggedIn = user != null

という書き方は特殊という程でもないと思います。
というかif文のよくある記述(というより比較演算子の仕様)を
正しく理解していれば、特に困らないと思います。

引用:

Rayさんの書き込み (2007-10-18 04:31) より:
a.returnに式を直接書くことをよくします。



私もこの使い方はよくやりますね。
同じくis〜なメソッドで条件式を置き換える場合などです。

引用:

Kazukiさんの書き込み (2007-10-18 06:43) より:
別に特殊な文法は使ってないと思います…
ただ、こういうのは普通
コード:
user = logic.login(role, true); 
■loggedIn = user != null; 
if (!loggedIn) { 
  addError("Could not log in with these credentials"); 
} 


私は、変数とかにいれずにifの中にuser != nullを直接書きます。



変数loggedInを後で使うのでなければ、私もifの中で直接判定すると思います。
でも、わざわざ変数に入れているくらいだから、後で使うんじゃないでしょうか。
あるいは、変数loggedInに一旦代入することでログインしているかどうかを判定していることを
明示したかったのかもしれません。
その場合は私ならメソッドにしてしまいますけどね。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2007-10-18 09:45
引用:

カブトムシ子太郎さんの書き込み (2007-10-18 03:45) より:

ソースを書くときは、少しは一般的な書き方をこころがけてほしいですね。可読性も増しますし・・・。

よく、一行にまとめようとして一見わかりにくい記述をされると困惑してしまうことがしばしばあります。ベテランの方にそのような傾向があるような気がしますが・・・。

私個人の意見としては、初級のプログラマーでもわかりやすく、一般的に書くほうがいいと思うのですが・・・。

それと同時に自分のキャパも増やさなければいけないのはもちろんですが・・・。


ご自身の書かれているとおりで主観以外の何者でもないと思います。 私も括弧は必ずつけますがこういった式を書くことがあります。(特に return で) というのも、式の順序を理解していれば難解ではないと思いますし、そもそも式の順序を意識できていないからこそわからないという事実の方が怖いです。

ただあの書き方そのものであれば私も反対ですね。 括弧は必ずつけてほしいです。 優先順位が明確になって可読性が増します。 これも慣れの問題なので主観ではありますが。

人それぞれもしくはチームそれぞれポリシなり規約なりがあって然りですから、気に入らないのであれば決めてしまえば良いと思います。 たとえば、「三項演算子」 が意味不明だという初心者がいるため三項演算子を禁止しているようなチームもあります。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
朝日奈ありす
大ベテラン
会議室デビュー日: 2007/05/02
投稿数: 189
お住まい・勤務地: 最北の地
投稿日時: 2007-10-19 07:10
条件式で壱番まれなのは

int x_x = ("-".equals("3")) ? -1 : 1

可読性も壱番わるい。
Ray
ベテラン
会議室デビュー日: 2007/09/13
投稿数: 88
投稿日時: 2007-10-20 10:11
三項演算子も列挙する時は読みやすくないですか。

a.setX1((x<0)?0:x);
a.setX2((x<0)?0:x);
a.setY1((y<0)?0:y);
a.setY2((y<0)?0:y);
// まだまだ続く。

例なので安直ですが、汎化できないようなものだったら。

前にif(null==a)がわかりにくいと言ってた人がif(a=null)と書き間違えてた。
checkstyleのようなものを使っても防げるとは思いますが。
Ray
ベテラン
会議室デビュー日: 2007/09/13
投稿数: 88
投稿日時: 2007-11-21 02:59
引用:

Rayさんの書き込み (2007-10-20 10:11) より:

前にif(null==a)がわかりにくいと言ってた人がif(a=null)と書き間違えてた。



javaだとコンパイルエラーなので関係なかったですね。失礼しました。
nagise
ぬし
会議室デビュー日: 2006/05/19
投稿数: 1141
投稿日時: 2007-11-21 09:23
引用:

Rayさんの書き込み (2007-11-21 02:59) より:
引用:

Rayさんの書き込み (2007-10-20 10:11) より:

前にif(null==a)がわかりにくいと言ってた人がif(a=null)と書き間違えてた。



javaだとコンパイルエラーなので関係なかったですね。失礼しました。



aがboolean型であればコンパイルエラーとならずにバグとなりますね
末記人
大ベテラン
会議室デビュー日: 2005/12/05
投稿数: 233
お住まい・勤務地: あわにこ
投稿日時: 2007-11-21 10:21
間違えて送信してしまっていたので、削除

[ メッセージ編集済み 編集者: 末記人 編集日時 2007-11-21 13:03 ]
sawat
大ベテラン
会議室デビュー日: 2006/08/02
投稿数: 112
投稿日時: 2007-11-21 10:27
引用:

nagiseさんの書き込み (2007-11-21 09:23) より:

aがboolean型であればコンパイルエラーとならずにバグとなりますね


booleanにnullは代入できないですよ

if(a = true) みたいな場合ですよね。
これは 単に if(a) と書けばいい話でしょう。

スキルアップ/キャリアアップ(JOB@IT)