Computer >> Máy Tính >  >> Lập trình >> Ruby

Cách sử dụng phương thức khởi tạo trong Ruby

Phương thức khởi tạo là một phần của quá trình tạo đối tượng trong Ruby và nó cho phép bạn thiết lập các giá trị ban đầu cho một đối tượng.

Trong các ngôn ngữ lập trình khác, họ gọi đây là "hàm tạo".

Ví dụ :

Giả sử bạn có Point lớp, điểm này cần hai tọa độ, x &y .

Bạn sẽ chuyển những giá trị này vào đối tượng như thế nào?

Như thế này :

Point.new(10, 20)

new phương thức là cách bạn tạo các đối tượng mới trong Ruby từ một lớp như Point hoặc bất kỳ lớp nào khác mà bạn có quyền truy cập.

Mối quan hệ giữa Tạo mới và Khởi tạo

Lưu ý hai đối số này, 10 &20 ?

Đây là lúc chúng ta quay lại initialize phương pháp.

Nếu bạn cố gắng chuyển các đối số vào new &nếu bạn không xác định initialize bạn sẽ gặp lỗi:

ArgumentError: wrong number of arguments (2 for 0)

Vì khi bạn gọi new , Ruby gọi initialize !

Bạn cần cái này :

class Point
  def initialize(x, y)
  end
end

Bây giờ bạn có thể tạo Point đối tượng có hai đối số.

Vì vậy, toàn bộ điểm của initialize là cho phép bạn tạo các đối tượng có đối số.

Lưu lập luận

Các đối số được chuyển vào initialize không được lưu tự động ở bất kỳ đâu.

Bạn phải thực hiện việc này bằng cách sử dụng các biến phiên bản:

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

Thao tác này sẽ gán các giá trị của x &y tới các biến phiên bản (@x &@y ) để bạn có thể truy cập chúng sau này.

Một số điểm cần lưu ý về initialize :

  • Bạn có thể xác định các đối số tùy chọn và mặc định
  • Sử dụng return bên trong phương thức này không có ý nghĩa vì nó đặc biệt và nó LUÔN LUÔN trả về một đối tượng mới
  • Định nghĩa initialize KHÔNG cần thiết nếu lớp của bạn không yêu cầu đối số

Bạn có thể gọi các phương thức khác bên trong initialize , nhưng bạn không muốn làm bất kỳ công việc thực sự nào ở đây ngoài những gì cần thiết để chuẩn bị cho đối tượng được sử dụng.

Ví dụ :

Nếu lớp học của bạn chỉ làm việc với Github API, bạn sẽ không muốn tải trước tất cả các yêu cầu có thể có cho API.

Bạn chỉ muốn lưu khóa API vào một biến phiên bản.

Hoặc bất kỳ dữ liệu nào mà lớp của bạn cần.

Khởi tạo hàm băm &các đối tượng tích hợp khác

Các đối tượng tích hợp sẵn như hàm băm có những cách đặc biệt để khởi tạo và tạo chúng bên cạnh việc gọi new .

Các cách tạo hàm băm :

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

Các cách tạo chuỗi :

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

Các cách tạo mảng :

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

%w tạo một mảng các chuỗi.

Tóm tắt

Bạn đã tìm hiểu về phương thức khởi tạo Ruby, cách nó liên quan đến new và những kiến ​​thức cơ bản về tạo đối tượng trong Ruby.

Hãy tiếp tục học bằng cách đọc phần giới thiệu này về Lập trình hướng đối tượng trong Ruby.

Cảm ơn vì đã đọc!