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

3 に答える 3

5

文字列をフォーマットする必要がない限り、2 番目の方法を好みます。スタイルに関するその他の質問については、GitHub Styleguide for Ruby を確認してください。

%sとについて%d。それらはフォーマッタであり、それらのリストはRuby Kernel::sprintf doc pageにあります。

于 2012-04-09T17:22:30.253 に答える
4

String#%メソッドのドキュメントを参照してください。Kernel#sprintfこれは、what%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コードはとんでもなくマニアックで、他の言語からの非常に長い歴史があります(そのため、あまり Ruby 風には見えません) が、強力で簡潔です。

于 2012-04-09T17:21:42.097 に答える
0

私はつい最近、embedding と呼ばれる % に出くわしました。% の後に入れたものを代入するようです。

例えば

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

%s と %d に対する簡単な答えは、%s は文字列用で、%d は小数用です。前の例を続けます。

age = 35
puts "My name is %s and I am %d years old" %[name, age]
于 2013-10-16T19:02:15.857 に答える