ในบทความนี้ คุณจะได้เรียนรู้ว่าวิธีการตรวจสอบ 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 เพื่อสร้างคลาสที่ดีขึ้น!
หากคุณชอบบทความนี้ โปรดแชร์เพื่อให้คนอื่นค้นหาเจอ
ขอบคุณสำหรับการอ่าน