Tôi có một số mã để tính tổng số thứ n của một số. Ngay bây giờ, phương thức đó chỉ hoạt động trên Fixnum, bởi vì tôi đã định nghĩa nó bên trong lớp Fixnum. Sẽ rất dễ dàng để thực hiệnThêm cùng một phương thức vào nhiều lớp
class Float
#same code as was in Fixnum
end
nhưng điều đó dường như không cần thiết. Tôi không có ý tưởng làm thế nào để tự động gọi các lớp học. Tôi đã thử:
classes = [Fixnum, Float]
classes.each do |x|
x.instance_eval do
def root(pow)
return self ** (1/pow.to_f)
end
end
end
nhưng điều đó không hiệu quả. Làm thế nào để tôi làm điều này? Lưu ý: Sau khi đăng bài, tôi nhận ra điều này có thể phù hợp hơn với Programmers.SE, vì đó là lý thuyết, cũng như dựa trên vấn đề đơn. Cảm thấy tự do để di chuyển phù hợp ...
Note rằng ở trên 'trả về' là không cần thiết (và là không thành ngữ). – Phrogz