2013-02-28 61 views
0

我碰上了以下內容,想不通這是什麼參數列表意味着:的Tcl參數表澄清

proc IsSpecificationLive { specificationDate { onDate "" } } 

更具體地說,什麼是{ onDate"" }爲參數列表裏的目的是什麼?

回答

2

可選參數onDate的空默認值。

proc

參數數量手冊頁指定形式參數的過程。它由一個可能爲空的列表組成,每個元素指定一個參數。每個參數說明符也是一個帶有一個或兩個字段的列表。如果說明符中只有一個字段,那麼它就是參數的名稱;如果有兩個字段,則第一個是參數名稱,第二個是其默認值。具有默認值的參數以及非默認參數後面的參數成爲必需的參數。在8.6中,這將被視爲錯誤。

實施例:

proc IsSpecificationLive { specificationDate { onDate "" } } { 
    puts $onDate 
} 

IsSpecificationLive foo bar; # outputs "bar" 
IsSpecificationLive baz; # outputs an empty line 

詳情參見用於proc的文檔。

1

這是可選參數的語法。所以,這個過程需要兩個參數。第一個是必需的(specificationDate),第二個是可選的。如果僅使用一個參數調用該過程,則onDate將設置爲「」。如果用兩個參數調用它,onDate將被設置爲第二個參數。

1

允許您使用單個參數調用該過程,onDate的默認值將爲空字符串。以下是交互式tclsh會話的片段:

% proc IsSpecificationLive { specificationDate { onDate "" } } { 
    puts $specificationDate 
    puts $onDate 
} 
% IsSpecificationLive 
wrong # args: should be "IsSpecificationLive specificationDate ?onDate?" 
% IsSpecificationLive one two 
one 
two 
% IsSpecificationLive one 
one 

% IsSpecificationLive one two three 
wrong # args: should be "IsSpecificationLive specificationDate ?onDate?"