2014-04-09

http://anond.hatelabo.jp/20140409113038

スクリプト系の言語には

"本は{$count}冊あります"

みたいに文字列中に変数を展開する機能あるじゃん

これを

"本は".appned($count).appned("冊あります")

とか書いてたら、絶対「なんでこんな書き方してるの?」って疑問に思われるし、それに

「好みです。可読性は同じだからどっちでもいいですよね」

とか答えてたら(だめだこいつなんとかしないと)って思われるよ。

s = "本は"+count+"冊あります";

s = new StringBuilder("本は").append(count).appned("冊あります").toSTring();

とが同じ可読性っておかしいだろ。

記事への反応 -
  • Javaで文字列連結は+を使えばStringBuilder()に最適化されるから、+を使っておけばよい ただしループなどで不定回数連結するものなどは最適化されないからStringBuilder()を使う ということ...

    • Javaで文字列連結は+を使えばStringBuilder()に最適化されるから、+を使っておけばよい いやいや、最適化されるのってリテラルの連結だけだろ?

      • ごめんなさい。素直に横から質問なんですけど 何の意味があるの?  どちらにしろ趨勢に影響ない場合のほうが多数でしょ。 逆にそれが処理速度の過半を占めるようなレアなプログラ...

        • +による連結とStringBuilderによる連結で可読性はそんなに変わらないと俺は思ってる。 んで、可読性が変わらないなら、性能が出るほうに統一するべきだろ。

          • スクリプト系の言語には "本は{$count}冊あります" みたいに文字列中に変数を展開する機能があるじゃん。 これを "本は".appned($count).appned("冊あります") とか書いてたら、絶対「なんでこん...

            • String.Format()使えよ…(マジ切望)

            • 好みです、じゃねーよ。 性能が違うっつってんだろ。 改行すりゃ別に読みにくくない。 s = new StringBuilder().append("本は").append(count).appned("冊あります").toString(); ループ内だったらStringBuilder...

              • StringBuilder sb=new StringBuilder(); sb.append(String.Format("本は%d冊あります\n",booknum)) .append(String.Format("しかし、%s君は本を読むことが出来ません\n","増田")) .append(String.Format("何故なら%s君は%sを読むこ...

      • Javaにヒアドキュメントが導入されれば解決する問題なんだけどな、文字列連結なんつーのは。 SQL文を組み立てるのに毎行毎行+"WHERE "+ "ID =" +id とか見てるとマジ発狂したくなる。 文字列...

      • いや変数でも最適化される。 使い分けが理解できないなら+を使っておけばいいよ。

        • StringBuilderよりも+のほうが性能出る場合があんの? 無いならStringBuilderで統一すべきだろ?

          • Javaを使う業務の目的でベンチマーク性能を求められることはほぼ無いからな? そもそも文字列結合ごときでシステム全般のパフォーマンスが致命的に上下しないからな?

          • 文字列連結があるたびに new StringBuilder() ~ append() とか、書くのも面倒だしコードも猛烈にゴチャるね

    • 文字列の連結に「+」っていう演算子を使うことが概念的にスマートじゃねえんだよ。分かれ。

    • いいよ。どうせ99.99%の文字列連結はパフォーマンスに影響しないんだから、'+'で書いておいて、ボトルネックが生じたところだけプロファイラで計測して必要ならそこだけ書き換えれば...

記事への反応(ブックマークコメント)

ログイン ユーザー登録
ようこそ ゲスト さん