[過去ログ] + JavaScript の質問用スレッド vol.126 + [転載禁止]©2ch.net (1002レス)
上下前次1-新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
549(1): 2015/11/03(火)23:41 ID:??? AAS
getFirstLine2はcharAtを使うのならこの実装で妥当だろう。
イレギュラー対策をdo/whileにしてstring.chaAtで引っかけるというのは若干トリッキーではあるが、
これが許可されるのならこれでいい。(少なくとも速度オーバーヘッドはない)
ただしJavaScriptだと一般的にはgetFirstLine1の方が速いはずなので、これが使われることはないだろう。
(C言語ならgetFirstLine2が最速)
さてgetFirstLine1だが、先述の通り、ここはB(速度)を目指さないといけない。(存在価値がない)
記述にもこの意識は見られ、Stringオブジェクト変換を減らしている。この辺はいい。
そこで処理順なのだが、速度を目指すのだから、よくある順にショートカットにして組むことが必要になる。
つまり、-1 && -1 の「例外」を最初に見るのではなく、
20,21とかの「通常」のケースを最初に処理しないといけない。
ただし、
> ポリシー次第だと思う
これはその通りで、「最初に例外処理を行うというルール」であれば、
最初に -1 && -1 を記述しなければならず、旧コードが妥当なものになる。
ただこのケースは余りないように思う。(後述)
Math.minについては、比較演算子よりも遅く、今回は採用する理由がない。
速度を目指すコードである以上、可読性が極端に落ちない限りは速い記述を採用するべき。比較演算子は十分に分かりやすい。
この場合はindexOfの戻り値である以上、型はnumberで確定しているのだから、比較演算子で何も問題ない。
(そちらの指摘通り、「比較演算子」と「メソッド」のどちらかに統一しろというルールもあると思うが、
俺は見た目ではなく実用性を考えているので上記の理由になる。
多分そちらの「構造化プログラミング」ってのはreturnを1個にしろという話だろうけど、そういうのは俺は気にしていない。
あくまで実用性重視であり、見た目が欲しければ最初からA(getFirstLine3)を使って終わらせる。
わざわざgetFirstLine1を使うのは速度が欲しい時だけであり、中速で中途半端に整ったコードには実用性がない。)
上下前次1-新書関写板覧索設栞歴
あと 453 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.011s