Hàm puts, print và p trong Ruby

Đăng bởi Lưu Đại vào ngày 18-12-2022

Nhầm tưởng về 3 chiến binh này 

Lúc đâu mình cứ tưởng 3 bạn này giống nhau, p là một alias cho hàm puts nhưng khi thử lại thì lại không phải vậy 
Khi thử trên terminal sẽ ra kết quả sau:
p 'something' 
"something"
=> "something" 

puts 'something' 
"something"
=> nil 

print 'something' 
"something"=> nil
Như vậy hàm cả 3 hàm đều in giá trị ra terminal tuy nhiên hàm p và puts sẽ thêm một kí tự xuống dòng vào cuối chuỗi 
print thì không. p sẽ trả về chuỗi đã được nhập vào trong khi puts và print sẽ trả về nil. 
Có thể kết luận 3 hàm này độc lập với nhau. 
Tuy nhiên 3 hàm này là hàm trong kernel của Ruby nên không thể truy được source code bằng hàm source_location.