2013-09-01 25 views
6

Trong Ruby, tôi thấy định nghĩa của một phương pháp như thế này:Một định nghĩa phương pháp bắt đầu với dấu ngoặc, không thể hiểu được tính hữu dụng của nó

def [](param) 
    # do stuff 
end 

không phương pháp này tuyên bố có ý nghĩa gì? Làm thế nào nó hoạt động? Khi nào sử dụng? Và làm thế nào để gọi loại phương pháp này với một đối tượng dụ?

+2

'[]' được gọi là dấu ngoặc đơn. Thuật ngữ "móc" như là một ý nghĩa hoàn toàn khác trong lập trình. Bạn nên cẩn thận. – sawa

+0

cảm ơn bạn đã cập nhật ngay bây giờ;) – medBo

Trả lời

8

Đó là tên của phương thức, []. Bạn có thể đã biết Array#[] hoặc Hash#[]. Trong các lớp học của bạn, bạn cũng có thể định nghĩa phương thức đó. Nó sẽ làm gì - tùy bạn.

class Foo 
    def [](param) 
    # body 
    end 
end 

f = Foo.new 
f[:some_value] 
+0

đây: some_value là thông số trong tuyên bố của tôi? – medBo

+0

Có, nó sẽ có sẵn dưới dạng 'param' trong thân phương thức –

+0

cảm ơn bạn đã rõ ràng ngay bây giờ – medBo

0

Bạn đã đọc số Array#[] này chưa? Nó sẽ cung cấp cho bạn một số ý tưởng về điều đó ..

[1,2].[](1) # => 2 
     | | 
---------> <--------- 
method name argument 
2

Nó có nghĩa là phương pháp có tên "[]". Bạn gọi nó là giống như bất kỳ phương pháp khác:

a = ['foo', 'bar', 'baz'] 
a.[](1) # => 'bar' 

Bên cạnh đó, các phương pháp với tên này, bạn cũng có thể gọi cho họ như

a[1]  # => 'bar' 
Các vấn đề liên quan