Tôi đang làm việc thông qua một cuốn sách về Ruby và tác giả đã sử dụng một dạng hơi khác để viết định nghĩa khởi tạo lớp học so với những phần trước của cuốn sách. Nó trông giống như thế này:Sự khác biệt giữa hai định nghĩa khởi tạo lớp Ruby này là gì?
class Ticket
attr_accessor :venue, :date
def initialize(venue, date)
self.venue = venue
self.date = date
end
end
Trong phần trước của cuốn sách, nó sẽ đã được định nghĩa như thế này:
class Ticket
attr_accessor :venue, :date
def initialize(venue, date)
@venue = venue
@date = date
end
end
Có sự khác biệt về chức năng giữa sử dụng phương pháp setter, như trong lần đầu tiên ví dụ, so với sử dụng biến ví dụ như trong lần thứ hai? Cả hai dường như làm việc. Thậm chí trộn chúng lên công trình:
class Ticket
attr_accessor :venue, :date
def initialize(venue, date)
@venue = venue
self.date = date
end
end
+1 không được lập trình bởi trùng hợp ngẫu nhiên. –