2012-04-09 4 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% 후 대표?

답변

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 코드는 지옥 같은 괴짜, 그리고 그들이 이유입니다 (A 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] 
관련 문제