簡體   English   中英

這在 groovy 中的語法含義是什么?

[英]What does this syntactically mean in groovy?

當我在 groovy shell (2.5.8) 中執行此操作時:

groovy:000> println("s":"s")
[s:s]
===> null

為什么我的打印語句打印了地圖(如果是這樣的話)?

語法println("s":"s")是傳遞命名參數的示例,它們被解釋為Map

與構造函數一樣,普通方法也可以使用命名參數調用。 為了支持這種表示法,在方法的第一個參數是Map的情況下使用約定。

因此,根據上面鏈接的文檔,您有一個名為s的參數,其值也是s ,Groovy 將它們放入Map中。 您可以在方法調用中添加額外的命名參數,這些參數也將添加到Map中。 此語法適用於任何接受Map作為其第一個參數的方法。 println的情況下,它接受Object ,並且由於MapObject ,因此可以將命名參數傳遞給此方法。

您看到的是 Groovy 中 Map 文字中的方括號省略。

調用可以重寫為:

println( [ "aa":"bb" ] ) // all brackets in place
println "a":"bb" // no brackets at all
println a:"bb" // a variant, where the left part of : is treated as key in Map Literal

暫無
暫無

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

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