Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Ruby

Ruby Output Basics: เลือกใช้ puts, print และ p อย่างไร

มีหลายวิธีในการพิมพ์สิ่งต่างๆ ใน Ruby

นี่คือที่มีประโยชน์ที่สุด:

  • puts
  • print
  • p

แต่มันต่างกันอย่างไร?

และ เมื่อไหร่ควรใช้ตัวไหน?

นั่นคือสิ่งที่คุณจะเรียนรู้ในบทความนี้!

วิธีพิมพ์โดยไม่มี newline

เมื่อต้องการพิมพ์สิ่งใดบนหน้าจอให้ผู้ใช้เห็น ปกติใช้ puts

แบบนี้:

puts "Hello there!"

Puts จะเพิ่ม new line ท้ายข้อความทุกครั้งที่ใช้

หากไม่ต้องการ newline ให้ใช้ print

ตัวอย่าง:

print 123

ครั้งต่อไปที่คุณ print จะอยู่บรรทัดเดียวกับข้อความก่อนหน้า

ตัวอย่าง:

print 123
print 456
print 789
123456789

แต่ถ้าใช้ puts:

puts 123
puts 456
puts 789
123
456
789

ทุกข้อความมีบรรทัดของตัวเอง!

Puts จัดการกับอาร์เรย์แตกต่างออกไปด้วย

ตัวอย่าง:

puts [1,2]
1
2
print [1,2]
[1,2]

ความแตกต่างอีกอย่าง:

Puts พยายามแปลงทุกอย่างเป็น string (โดยเรียก to_s)

ทำไมถึงสำคัญ?

เพราะหากคุณพยายาม puts อาร์เรย์ที่มีค่า nil…

มันจะแสดงบรรทัดว่างบางบรรทัด!

ตัวอย่าง:

puts [1,nil,nil,2]
1
2

สรุป puts และ print:

  • แปลงสิ่งต่างๆ เป็น string แม้จะหมายถึง empty string

เฉพาะ puts:

  • เพิ่ม new line ท้ายข้อความ
  • แสดง element ของอาร์เรย์ทีละบรรทัด

Debug Output ด้วย P

puts เทียบกับ p แล้วเป็นไง?

p เป็นเมธอดที่แสดง version "ดิบ" (raw) ของออบเจกต์

ตัวอย่าง:

> puts "Ruby Is Cool"
Ruby Is Cool
> p "Ruby Is Cool"
"Ruby Is Cool"

p มีประโยชน์สำหรับอะไร?

Debugging

เมื่อคุณมองหาสิ่งอย่างเช่น (ปกติมองไม่เห็น) newline characters หรืออยากแน่ใจว่าค่าใดค่าหนึ่งถูกต้อง ให้ใช้ p

ความแตกต่างอีกอย่าง:

  • puts คืนค่า nil เสมอ
  • p คืนค่าออบเจกต์ที่คุณส่งเข้าไป

นี่คือความแตกต่างทางเทคนิค…

แต่อาจโผล่มา หากคุณพยายาม puts ตัวแปรเป็นบรรทัดสุดท้ายของเมธอด และคุณใช้ return value ของเมธอดนั้น

ตัวอย่าง:

def numbers
  puts 123
end
numbers # nil

ในตัวอย่างนี้ เมธอด numbers จะแสดง 123 บนหน้าจอ แต่ return value จะเป็น nil

หากคุณลอง:

result = numbers

แล้ว result จะเป็น nil แทนที่จะเป็น 123

แต่ถ้าใช้ p จะทำงานได้

Pretty Printing

Ruby มีเมธอดพิมพ์อีกตัว

เรียกว่า pp

เหมือน p แตพิมพ์ hash และ array ขนาดใหญ่อย่างสวยงาม

สังเกตว่า Ruby เวอร์ชันเก่า (ก่อน 2.4) ต้อง require 'pp' เพื่อเข้าถึงเมธอดนี้

วิดีโอสอน

สรุป

คุณเรียนรู้ความแตกต่างระหว่าง puts, print และ p ใน Ruby แล้ว!

Ruby Output Basics: เลือกใช้ puts, print และ p อย่างไร

ตอนนี้คือ เวลาฝึกฝน

หากคุณฝึกกับสิ่งใหม่ทันที คุณจะบูรณาการข้อมูลนี้เข้าสู่ฐานความรู้ หากไม่ฝึก คุณจะลืม และไม่ได้ก้าวหน้า