2015-03-07 24 views
7

Có cách nào để thêm các phương thức tĩnh vào các lớp R6 không? Ví dụ, một hàm có thể được gọi nhưPhương pháp tĩnh trong các lớp R6

MyClass$method() 

Thay vì

myinstance <- MyClass$new() 
myinstance$method() 

Trả lời

6

Tôi không phải là một chuyên gia về R6 nhưng vì mỗi lớp R6 là một môi trường, bạn có thể thêm bất cứ điều gì bạn muốn môi trường này.

Giống như:

MyClass$my_static_method <- function(x) { x + 2} 
MyClass$my_static_method(1) 
#[1] 3 

Nhưng phương pháp này sẽ không hoạt động trên các thể hiện của lớp:

instance1 <- MyClass$new() 
instance1$my_static_method(1) 
# Error: attempt to apply non-function 

Bạn nên cẩn thận với các đối tượng đang tồn tại trong môi trường lớp học. Để xem những gì đã được xác định sử dụng ls(MyClass)

Các vấn đề liên quan