君の瞳はまるでルビー - Ruby 関連まとめサイト

コメント/idiom/add_library_path

最終更新: 2015-03-31 (火) 21:53:23 (2870d)

ライブラリ(gem)のパス追加

  • よくpushとunshiftの別々を見かけますが、unshiftの優位点はありますか? -- 初心者 2013-02-01 (金) 00:49:18
  • その疑問よくわかります。unshift より push の方が配列に対する操作は一般的ですよね。同じ配列への追加ならなぜ push ではなく unshift をわざわざ使うのかという疑問は最もだと思います。 -- トゥイー 2013-02-01 (金) 01:38:15
  • 「優位点」というと少し語弊がありますが unshift には「特別な意味」が込められています。 -- トゥイー 2013-02-01 (金) 01:39:04
  • require は gem を LOAD_PATH 順に検索していきます。「同じ名前のファイルが検索パス上に存在した場合にどちらが読み込まれるか?」となったときに unshift での検索パスの追加には「最後に追加した検索パスを優先して見て欲しい。」という意味が加わります。push だと追加した検索パスを見るのは最後になるので、そのような意味合いを持ちません。 -- トゥイー 2013-02-01 (金) 01:40:08
  • unshift と push の違いが出るのは、同じ名前のファイルが検索パス上に複数存在する場合だけです。そのような場合、通常は「後に追加した検索パスの方を優先的に見て欲しい」となることが多いので unshift に意味が出てきます。 -- トゥイー 2013-02-01 (金) 01:57:35
  • push と unshift の意味の違いをちゃんと知っていれば通常はどちらでも構いません。特殊な場合には、その意味を理解した上で使い分けてください。 -- トゥイー 2013-02-01 (金) 02:06:42
  • 返信遅れてしまいましたが、丁寧な解説感謝します。とてもわかりやすかったです。 -- 初心者 2013-02-07 (木) 02:34:58
  • いえいえ、こちらこそ。今回、質問があった内容を踏まえて少し内容を書き換えさせてもらったので、それも参考にしていただければと思います。 -- トゥイー 2013-02-08 (金) 22:44:34