ในบทความนี้ คุณจะได้เรียนรู้ว่าวิธีการตรวจสอบ Ruby ทำงานอย่างไร และทำไมเราจึงใช้
เมื่อคุณพิมพ์สตริงหรืออาร์เรย์ คุณจะเห็นเนื้อหาในนั้น
ตัวอย่าง :
puts [1,2,3] 1 2 3
แต่เมื่อคุณพิมพ์วัตถุของคุณเอง…
คุณเห็นสิ่งนี้ :
#<Cat:0x29458e0>
ทำไม?
เพราะคุณยังไม่ได้บอก Ruby ว่าจะแสดงคลาสนี้อย่างไรให้สมเหตุสมผล
คุณสามารถเปลี่ยนค่านี้ได้หากคุณกำหนดวิธีการเช่น to_s
.
มาดูกันว่ามันทำงานอย่างไร!
กำลังใช้งาน to_s
เมื่อคุณใช้ put กับวัตถุ Ruby จะเรียก to_s
วิธีการรับการแสดงสตริงของวัตถุ
โดยค่าเริ่มต้น คุณจะได้รับชื่อคลาส (Cat
)…
บวกตัวเลขที่แสดงถึง object_id
ในรูปแบบเลขฐานสิบหก (0x29458e0
)
นี่คือวิธีเปลี่ยนสิ่งนั้น :
class Cat def to_s "I'm a cat" end end puts Cat.new # "I'm a cat"
หากคลาสของคุณมีตัวแปรอินสแตนซ์ คุณสามารถทำให้มันเป็นส่วนหนึ่งของคำอธิบายออบเจกต์ของคุณได้
ถูกใจสิ่งนี้ :
class Cat attr_reader :color def initialize(color) @color = color end def to_s "I'm a #{color} cat" end end puts Cat.new("blue") # "I'm a blue cat" puts Cat.new("white") # "I'm a white cat"
ตอนนี้เมื่อคุณพิมพ์วัตถุนี้ คุณจะเห็นข้อมูลที่เป็นประโยชน์มากขึ้น
ไม่เจ๋งเหรอ
วิธีการตรวจสอบทับทิม
คุณสามารถแสดงวัตถุได้สองวิธี
ก่อน :
การใช้ to_s
.
นี่คือสิ่งที่คุณต้องการให้ผู้ใช้ของคุณเห็นเมื่อคุณแสดงวัตถุ
ตัวอย่างเช่น เมื่อใช้วัตถุเวลา คุณจะแสดงเวลาในลักษณะที่เหมาะสม (2018-12-28 19:17:28
) แทนที่จะแสดงว่าเวลาถูกเก็บไว้จริง ๆ (1546021067
)
แล้ว :
คุณสามารถ inspect
ออบเจ็กต์ ซึ่งจะทำให้คุณมีอ็อบเจกต์เวอร์ชันที่ดิบมากขึ้น
ต่างกันอย่างไร
- กำหนด
to_s
ดังนั้นเมื่อคุณใช้การพุท มันจะแสดงมุมมองเฉพาะของวัตถุนี้ - กำหนด
inspect
เพื่อช่วยตัวเองและนักพัฒนาคนอื่นๆ ในการดีบัก
นี่คือตัวอย่าง :
"abc".inspect
แสดงเป็น :
"abc"
ตรวจสอบเก็บเครื่องหมายคำพูดและอักขระพิเศษ (เช่น \n
สำหรับการขึ้นบรรทัดใหม่) จะมองเห็นได้
ส่วนที่ดีที่สุด?
คุณสามารถใช้ inspect
วิธีการในชั้นเรียนของคุณเอง 🙂
ตามนี้ :
class Cat attr_reader :color def inspect "Cat - id: #{object_id} - color: #{color}" end end Cat.new("white").inspect # "Cat - id: 23316588 - color: white"
นั่นเป็นวิธีที่คุณสามารถสร้างวัตถุที่อธิบายตัวเองได้!
วิดีโอสอน
สรุป
คุณได้เรียนรู้วิธีการใช้วิธีการตรวจสอบ Ruby &to_s เพื่อสร้างคลาสที่ดีขึ้น!
หากคุณชอบบทความนี้ โปรดแชร์เพื่อให้คนอื่นค้นหาเจอ
ขอบคุณสำหรับการอ่าน