2013-12-09 14 views

Trả lời

2

set không có ý nghĩa đặc biệt trong Ruby. Trong thực tế, nó không phải là một từ khóa Ruby, đó là một lệnh Capistrano, một phần của Capistrano DSL.

Về mặt kỹ thuật, đây là phương pháp Ruby. Bạn có thể xem method definition.

def set(key, value) 
    config[key] = value 
end 
5

Đó không phải là từ khóa trong tiêu chuẩn Ruby. Đó là một ví dụ về một phần tử trong một Ngôn ngữ Cụ thể Miền (DSL).

Về cơ bản, DSL cho phép bạn làm việc ở mức trừu tượng cao hơn bằng cách cung cấp nhiều cấu trúc được nhắm mục tiêu hơn ngôn ngữ có mục đích chung như Ruby. "Bộ" ở đây là một ví dụ về điều này. Nó có lẽ chỉ là một chức năng trong Ruby mà bạn đang thực sự gọi, nhưng khi bạn sử dụng nó, nó cảm thấy giống như một ngôn ngữ xây dựng theo đúng nghĩa của nó. Ruby đặc biệt giỏi khi viết DSL

Đối với những gì trong Capistrano, tôi không biết, tôi chưa từng sử dụng Capistrano. :)

5

set không ruby ​​từ khóa là capistrano lệnh
từ nguồn capistrano

def set(key, value) 
    @properties[key] = value 
end 
3

Những kẻ khác ăn cắp sấm sét của tôi, nhưng here là một cuộc thảo luận về set trong bối cảnh của DSL Capistrano:

"Phương pháp này là cách chính để xác định các biến có thể được truy cập ở bất kỳ đâu trong cấu hình Capistrano. Nó cho phép bạn đặt ngay cả một d biến trễ, tùy thuộc vào việc bạn có sử dụng một khối để xác định biến hay không. "

0

Nó có thể được gọi là một 'bareword' nhưng không phải là một keyword, vì đó là cách của Ruby tên bộ sưu tập của 'Words Reserved' cho ngôn ngữ. Như vậy, nó là một trong hai một biến hoặc một tên phương pháp, do thực tế rằng nó không được thêm vào phía trước với @ hoặc $ hoặc @@ và không được viết hoa.

đó là trên thực tế chỉ là một phương pháp.

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