2

メソッドで式の補間を使用することに混乱があります。当初は、たとえばのようにあらゆる種類の式を渡すことができると思ってname.capitalizeいましたが、式の補間なしでも渡すことができます。これが2つのケースです。で以下の2つのメソッドを実行するだけでirb、両方のメソッドで同じ結果が得られます。Ruby1.9.3を使用しています

1.1。

def say_goodnight(name)
 result = "Good night, " + name.capitalize
 return result
end

puts say_goodnight('uncle')

2.2。

def say_goodnight(name)
  result = "Good night, #{name.capitalize}"
  return result
end

puts say_goodnight('uncle')

どちらの方法でも、次のような出力が生成されます

Good night, Uncle

だから私の質問は、Rubyで式補間をいつ使用すべきかということです。そしていつRubyでパラメータを使うべきですか?

4

2 に答える 2

6

一般的に、どちらの方がきれいに読めばよいかがわかります。たとえば、文字列にいくつかの文字で区切られた多数の変数参照が含まれている場合、式の「+」形式は複雑で不明瞭になる可能性がありますが、補間された文字列はより明確になります。一方、式が比較的複雑な場合は、文字列の他のコンポーネントからそれらを分離することをお勧めします。

だから、私は次のように思います:

"Hello #{yourname}, my name is #{myname} and I'm #{mood} to see you."

よりも明確です

"Hello " + yourname + ", my name is " + myname + " and I'm " + mood + "to see you."

しかし、複雑な式がある場合は、それらを異なるソースコード行に分割することをお勧めします。これらは、「+」でより適切に接続されます。

于 2012-07-26T00:17:07.510 に答える
2

私は@djconnelを使用しています。最もよく読み、最も多くの情報を伝達し、変更や拡張を容易にし、デバッグを簡単にするなどのいずれかを使用します。

これは昨日話し合われたばかりです。奇妙なRuby構文を参照してください?

特定の例では、文字列補間を使用します。これは、メソッドが実際には次のとおりであるためです。

def say_goodnight(name)
  "Good night, #{name.capitalize}"
end
于 2012-07-26T00:22:31.253 に答える