2013-03-24 2 views
-1
def say(arg) 
    "Hello, #{arg}.\n" 
end 

say("ABC") # => "Hello, ABC.\n" 

여기 왜 새 줄 대신 \ n이 인쇄됩니까?왜 개행 문자가 여기서 작동하지 않습니까?

+1

''Hello, ABC. \ n "'는'say' 메소드를 호출 한 결과입니다. _print_ 문자열을 출력하고 싶다면'puts say ("ABC")'(또는'puts "Hello, # {arg}. \ n"'say'method')를 사용하십시오. – mudasobwa

답변

2

say은 문자열을 반환하기 때문에. 아무것도 인쇄하지 않습니다. 당신은 가장 가능성 irb에서 이것을 시도하고

def say(arg) 
    puts "Hello, #{arg}.\n" 
end 
0

문자열의 루비 표현을 표시합니다 : 당신이 인쇄에 당신이 시도해야 무언가를 원하는 경우에

. 비교 :

irb(main):007:0> puts say("ABC") + say("ABC") 
Hello, ABC. 
Hello, ABC. 
=> nil 
irb(main):008:0> puts "ABC" + "ABC" 
ABCABC 
=> nil 
0

실제로는 stdio 또는 그와 비슷한 것으로 인쇄되지 않습니다. 단순히 함수에서 문자열을 반환하는 것입니다.

IRB에서 이것을 평가한다고 가정합니다. IRB는 모든 표현식의 결과를 인쇄합니다. puts 또는 이와 유사한 것을 사용하십시오.

관련 문제