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

วิธีการใช้วิธีการเริ่มต้นใน Ruby

วิธีการเริ่มต้นเป็นส่วนหนึ่งของกระบวนการสร้างวัตถุใน Ruby และช่วยให้คุณสามารถตั้งค่าเริ่มต้นสำหรับวัตถุได้

ในภาษาการเขียนโปรแกรมอื่น ๆ พวกเขาเรียกสิ่งนี้ว่า “คอนสตรัคเตอร์”

ตัวอย่างเช่น :

สมมติว่าคุณมี Point class จุดนี้ต้องการสองพิกัด x &y .

คุณจะส่งผ่านค่าเหล่านี้ไปยังวัตถุอย่างไร

ถูกใจสิ่งนี้ :

Point.new(10, 20)

new วิธีคือวิธีสร้างวัตถุใหม่ใน Ruby จากคลาสเช่น Point หรือชั้นเรียนอื่นๆ ที่คุณสามารถเข้าถึงได้

ความสัมพันธ์ระหว่างสิ่งใหม่และการเริ่มต้น

สังเกตสองอาร์กิวเมนต์ 10 &20 ?

นี่คือที่ที่เรากลับมาที่ initialize วิธีการ

หากคุณพยายามส่งผ่านอาร์กิวเมนต์ไปยัง new &ถ้าคุณไม่กำหนด initialize คุณจะได้รับข้อผิดพลาด:

ArgumentError: wrong number of arguments (2 for 0)

เพราะเมื่อคุณเรียก new , Ruby เรียก initialize !

คุณต้องการสิ่งนี้ :

class Point
  def initialize(x, y)
  end
end

ตอนนี้คุณสามารถสร้าง Point วัตถุที่มีสองอาร์กิวเมนต์

ดังนั้นจุดรวมของ initialize คือการอนุญาตให้คุณสร้างวัตถุที่มีอาร์กิวเมนต์

การบันทึกข้อโต้แย้ง

อาร์กิวเมนต์ที่ส่งผ่านไปยัง initialize จะไม่ถูกบันทึกโดยอัตโนมัติทุกที่

คุณต้องทำสิ่งนี้โดยใช้ตัวแปรอินสแตนซ์:

class Point
  def initialize(x, y)
    @x = x
    @y = y
  end
end

ซึ่งจะกำหนดค่าของ x &y ไปยังตัวแปรอินสแตนซ์ (@x &@y ) เพื่อให้คุณสามารถเข้าถึงได้ในภายหลัง

ข้อควรทราบบางประการเกี่ยวกับ initialize :

  • คุณสามารถกำหนดอาร์กิวเมนต์ที่ไม่บังคับและเริ่มต้นได้
  • การใช้ return ภายในวิธีนี้ไม่สมเหตุสมผลเพราะมันพิเศษ &มันจะส่งคืนวัตถุใหม่เสมอ
  • การกำหนด initialize ไม่จำเป็นหากชั้นเรียนของคุณไม่ต้องการการโต้แย้ง

คุณสามารถเรียกวิธีอื่นๆ ภายใน initialize แต่คุณไม่ต้องการที่จะทำงานจริงนอกเหนือจากความจำเป็นในการเตรียมวัตถุที่จะใช้

ตัวอย่างเช่น :

หากชั้นเรียนของคุณเกี่ยวกับการทำงานกับ Github API คุณคงไม่อยากโหลดคำขอที่เป็นไปได้ทั้งหมดล่วงหน้าไปยัง API ล่วงหน้า

คุณเพียงแค่ต้องการบันทึกคีย์ API ลงในตัวแปรอินสแตนซ์

หรือข้อมูลใดๆ ที่ชั้นเรียนของคุณต้องการ

การเริ่มต้นแฮชและออบเจ็กต์ในตัวอื่นๆ

ออบเจ็กต์ในตัว เช่น แฮช มีวิธีพิเศษในการเริ่มต้นและสร้างมัน นอกเหนือไปจากการเรียก new .

วิธีสร้างแฮช :

h = Hash.new
h = Hash['a', 1]
h = {}

วิธีสร้างสตริง :

s = String.new
s = ""
s = %Q()

วิธีสร้างอาร์เรย์ :

a = Array.new(5)
a = %w(a b c)
a = []

%w สร้างอาร์เรย์ของสตริง

สรุป

คุณได้เรียนรู้เกี่ยวกับวิธีการเริ่มต้น Ruby แล้วว่าเกี่ยวข้องกับ new .อย่างไร วิธีการและพื้นฐานของการสร้างวัตถุใน Ruby

เรียนรู้ต่อไปโดยอ่านคำแนะนำเบื้องต้นเกี่ยวกับการเขียนโปรแกรมเชิงวัตถุใน Ruby

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