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

วิธีการสร้างวัตถุทับทิมที่อธิบายตัวเอง

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

หากคุณชอบบทความนี้ โปรดแชร์เพื่อให้คนอื่นค้นหาเจอ

ขอบคุณสำหรับการอ่าน