Bất kể thực hành tốt hay không, làm thế nào tôi có thể tự động gọi các phương thức accessor trong Ruby?Làm thế nào để tự động gọi các phương thức accessor trong Ruby
Dưới đây là một lớp dụ:
class Test_Class
attr_accessor :a, :b
end
tôi có thể sử dụng phương pháp Object.send để đọc biến ...
instance.a = "value"
puts(instance.send("a"))
# => value
Nhưng tôi có một thời gian khó khăn cố gắng để viết thư cho nó. Những ném "nhầm số của đối số (1 0) (ArgumentError)"
instance.send("a", "value")
và
instance.method("a").call("value")
Xin hãy giúp tôi StackOverflow!
trình, tuyệt vời! Tôi đoán dấu bằng là một phần của tên phương thức? –
Có, dấu bằng theo cách thông thường để xác định phương thức setter trong Ruby. Tôi sẽ sử dụng biểu tượng thay vì chuỗi. 'instance.send (: a =," value ")' –
Đúng. attr_accessor thực hiện hai phương pháp: def v; @v; kết thúc và def v = (giá trị); @ v = giá trị; kết thúc – Angela