什么[:]在groovy中意味着什么?

das*_*eks 28 variables groovy definition

在阅读另一个开发人员的一些groovy代码时,我遇到了以下定义:

def foo=[:]
Run Code Online (Sandbox Code Playgroud)

这是什么意思?

doe*_*eri 33

[:] 是创建地图的简写表示法.

您还可以向其添加键和值:

def foo = [bar: 'baz']
Run Code Online (Sandbox Code Playgroud)

  • 我想多个条目用逗号分隔?`[bar:'baz',qux:'quux']` (2认同)

Sea*_*lly 12

[:]创建一个空的Map.冒号用于区分它[],这会创建一个空列表.

这个时髦的代码:

def foo = [:]
Run Code Online (Sandbox Code Playgroud)

大致相当于这个java代码:

Object foo = new java.util.LinkedHashMap();
Run Code Online (Sandbox Code Playgroud)