4

Rubyの文字列に対する.gsubおよび/または.subメソッドのチェーンのパフォーマンスへの影響はありますか?

たとえば、画像のaltタグを作成するRailsソースのメソッドの例を次に示します。ファイル拡張子とダイジェスト(存在する場合)を削除します。

def image_alt(src)
  File.basename(src, '.*').sub(/-[[:xdigit:]]{32}\z/, '').capitalize
end

私のアプリでは、アンダースコアまたはハイフンをスペースに変更したいのでgsub、最後にメソッドを追加します。

def image_alt(src)
  File.basename(src, '.*').sub(/-[[:xdigit:]]{32}\z/, '').gsub(/(_|-)/, ' ').capitalize
end

それはパフォーマンスやスタイルに関して危険信号を上げますか?

4

3 に答える 3

7
str.tr('-_', ' ') 

検討する価値があります ( doc )

于 2013-02-07T22:04:26.407 に答える
1

チェーン内の正規表現の一致がオーバーラップしないと想定されている場合StringScanner、結果を に出力しながら、単一の反復で条件内でそれらを実行すると、StringIOパフォーマンスが向上する場合があります。

于 2013-02-08T00:24:52.047 に答える
0

問題はありませんでした。いくつかのプログラムで数値gsub呼び出しを使用していますが、パフォーマンスに問題はありませんでした。性能的には気になりません。スタイルに関しては個人の好みだと思います。個人的には、正規表現を絶対に避けようとしています。しかし、それは私だけです。

于 2013-02-07T21:43:31.677 に答える