2012年9月17日月曜日

PyCon JP 2012で@dankogaiさんのスライドで,仕事でJavaの三項演算子で問題になったこと似ていたので書いてみました.

PyCon JP 2012で使われた@dankogaiさんのスライドはこれ

そのスライドでどうなのよって言っているPytohnの内包表記はこれ.
noprimes = [j for i in range(2, sn) for j in range(i*2, n, i)]
(スライドの一部転記)

問題のJavaの三項演算子はこれ.
String line =  i  > 10 ? "i>10" : j < 5 ? "i<=10 かつ j<5" : "j>5";


どちらも2つの処理をまとめて1行にしています.

素直に2つに分けた方が良いのか,それとも1行の方が良いのか....

完全に好みの問題ではあるけれど,私は2行に分けた方がイイと思う.
Pythonは長く触っていないので,どっちが良いかはわからないけど..


Javaはこっちの方が見やすいと私は思う.

String line = null;;
if( i > 10) line = "i>10";
else if (j > 5) line =  "i<=10 かつ j<5";
else line = "j>5";

こっちの方が条件をぱっと見でわかる気がする.(三項演算子をあまり見ないから慣れの問題かもしれないが)

もちろん条件が1つであれば三項演算子を使うのに,賛成.書く量が断然少ないし,見やすいし,短い.

String line =  i  > 10 ? "i>10" :  "i<=10" ;

ふと思いつきで,書いてしまいました.
みなさんはどちらが好みでしょうか???




0 件のコメント:

コメントを投稿