簡體   English   中英

用於傳遞參數的parmname:value語法的起源是什么?

[英]What is the origin of the parmname: value syntax for passing paramters?

去年夏天,我學習了groovy,發現了構造函數的語法,可以用一個值指定參數名稱並初始化該值。 例如:

Team team = new Team(name: "Bengals")

在今年年底,我升級了IntelliJ,並且此語法開始出現在具有不同參數列表的重載函數的java函數中。 (這不是很好的實現。當我嘗試更改值時,這很令人困惑。我已經弄清楚了,但是實現不好。)

team.chant = (msg: "Who dey?");

這很有趣,因為我正在學習Swift 3,它使用相同的語法。

Swift 3似乎不太可能受到Groovy的影響,所以我很好奇。 哪種語言對這些語言施加壓力以支持parmname:value語法?

在我看來,Swift基於對Smalltalk的了解很少。 Smalltalk是否支持此參數語法?

我不了解Swift和Groovy,所以我只能對Smalltalk做出回應。

Smalltalk不支持該語法,但是具有類似這樣的關鍵字消息。

例如,

team := Team new name: 'Bengals'.
team chant msg: 'who dey?'

在Smalltalk中有效。

並不是參數的名稱在命令中,而是命令本身是#name :,它與某些實例變量的名稱匹配,但是它是一種設置其值的方法...因此,正如我所說,它讀取的內容相同但是含義卻大不相同。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM