루비에서 Hello, world! 출력하기, puts와 print의 차이

이 포스트에서는 루비에서 Hello, world!를 출력하는 방법을 설명합니다.

루비에서는 출력문을 사용하여 Hello, world!를 출력하고자 할 때 다음과 같은 두 가지 방법이 있습니다.

puts "Hello, world!"
print "Hello, world!"

이 두 가지 코드의 실행 결과는 다음과 같습니다.

Hello, world!

두 코드가 똑같이 ‘Hello, world!’를 출력합니다.

이렇게 본다면 puts와 print는 같다고 생각될 수도 있습니다. 하지만 차이가 있습니다. 다음 코드를 봅시다.

puts "Hello, world!"
puts "Hello, world!"
print "Hello, world!"
print "Hello, world!"

앞의 예제대로 미루어 본다면 이 두 코드는 같은 결과를 낼 것처럼 보입니다. 하지만,

Hello, world!
Hello, world!
Hello, world!Hello, world!

puts를 썼을 때는 두 Hello, world!가 다른 줄에서 출력되지만, print를 썼을 때는 두 Hello, world!가 한 줄에 서로 붙어서 출력됩니다.

이로써 puts와 print의 차이를 알 수 있습니다. puts "Hello, world!"가 파이썬의 print("Hello, world")와 같다면, print "Hello, world!"는 파이썬의 print("Hello, world", end="")와 같습니다. 즉, puts는 출력할 문자열의 끝에 개행 문자를 붙여서 다음에 출력될 문자열이 다음 행에 출력되지만 print는 출력할 문자열의 끝에 개행 문자를 붙이지 않기 때문에 다음에 출력될 문자열이 개행되지 않고 그 줄에 이어서 출력됩니다.

이와는 별개로 p 명령문이 있습니다. 이는 puts나 print와 같아 보이지만,

p Math::PI
p "Hello, world!"
3.141592653589793
"Hello, world!"

이와 같이 자료형이 문자열이면 문자열화하여 양 끝에 큰따옴표(” “)를 붙인다는 차이점이 있습니다.

답글 남기기

이메일 주소는 공개되지 않습니다.