2012-04-09 5 views
4

変数を出力する方法はかなりあります。どちらが「より良い」ものですか?文字列内の変数を出力する「適切な」方法

my_name = 'Jeff Hall' 
my_height = 74 
puts "Let's talk about %s." % my_name 
puts "He's %d inches tall." % my_height 

puts "Let's talk about #{my_name}." 
puts "He's #{my_height} inches tall." 

はまた、sd%後に何を表しているのですか?

答えて

4

私は文字列をフォーマットする必要がない限り、第2の方法を好む。スタイルチェックの詳細についてはGitHub Styleguide for Rubyをご覧ください。

%sおよび%d。彼らはフォーマッターであり、そのリストはRuby Kernel::sprintf doc pageです。

3

String#%メソッドのドキュメントを参照してください。Kernel#sprintfは、%s%dの意味を示します。

文字列補間は、簡単な自己文書化文字列に適しています。ただし、プレースホルダを使用すると、コードを短くすることができ、また、文字列の補間をあなたに単に利用できるフォーマット電源が入ら与える:

values = { average:12.3, max:15.34734112, min:9.2314311 } 
values.each do |name,value| 
    puts "%7s: %5.2f" % [ name, value ] 
end 

#=> average: 12.30 
#=>  max: 15.35 
#=>  min: 9.23 

printfコードは、すべての地獄のようにオタクであり、彼らが理由である(very long history from other languagesを持っている彼ら非常にRuby-esqueに見えません)、しかし、それらは強力で、簡潔です。

0

私は最近%埋め込みと呼ばれていました。あなたが%の後に置いたものに置き換わるようです。

E.G.

name = "harry" 
puts "My name is %s" %name 

% Sおよび%dに単純な答えを%として、dは小数のためのものである場合%sは、ストリングのためです。 上記の例で実行してください。

age = 35 
puts "My name is %s and I am %d years old" %[name, age] 
関連する問題