2013-12-09 34 views

回答

2

set在Ruby中沒有特別的意義。事實上,它不是Ruby關鍵字,它是Capistrano DSL的一部分,屬於Capistrano命令。

從技術上講,這是一種Ruby方法。你可以看到method definition

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

這不是標準Ruby中的關鍵字。它是域特定語言(DSL)中元素的一個示例。

基本上,通過提供比Ruby等通用語言更多的針對性構造,DSL可以讓您在更高的抽象層次上工作。這裏的「set」就是一個例子。這可能只是你實際調用的Ruby中的一個函數,但是當你使用它時,它本身就更像是一種語言結構。 Ruby特別擅長編寫DSL

至於在Capistrano中做了什麼,我不知道,我從來沒有使用Capistrano。 :)

5

set不是紅寶石關鍵字capistrano從Capistrano的源

​​3210
3

其他的人偷了我的風頭命令
,但hereset的Capistrano的DSL的框架內進行討論:

此方法是定義變量的主要方式,可以在Capistrano配置中的任何位置進行訪問。它允許您將立即和d延遲變量,取決於您是否使用塊來定義變量。

0

它可以被稱爲‘裸詞’,但不是keyword,因爲這是怎樣的Ruby名字的集合‘保留字’的語言。因此,它可以是一個變量或方法名稱,由於它不是用@或$ @@或前綴,而不是資本。

它實際上只是一個方法。

相關問題