0

dot変数が繰り返されるたびに、変数の指示対象をピリオドからスペースに変更する必要があるループがあります。

dot = (dot == ".") ? " " : "."

これは問題なく動作しますが、適切な Ruby のようには読めません。これは1行のステートメントである必要があるようです。これを達成するためのよりRubyのような方法があるかどうか疑問に思っています。私はこれをループで達成する別の方法を受け入れています。もしかしたらできるかもgsubしれません。

4

3 に答える 3

1

ループが標準形式の 1 つである場合は、#with_index またはそのバリアントを使用できます。

objects.each_with_index do |element, index|
   separator = index.even? ? "." : " "
   ... do something with element and separator
end

これにより、意図が明確になり、一般的に巧妙なコーディングよりも優先されます。

于 2014-10-20T06:58:36.957 に答える