[譯] Groovy 語法之Map

原文鏈接:http://groovy-lang.org/syntax.html

9. Map

有時(shí)在其他語言中稱為字典或關(guān)聯(lián)數(shù)組挑辆,Groovy具有 Map 功能宾尚。

Map 將鍵與值相關(guān)聯(lián),用冒號(hào)分隔鍵和值有鹿,使用逗號(hào)分隔每個(gè)鍵/值對(duì)旭旭,以及用方括號(hào)括起的整個(gè)鍵和值谎脯。

// 我們定義了一個(gè)顏色名稱的 map葱跋,與它們的十六進(jìn)制編碼的 html 色值相映射
def colors = [red: '#FF0000', green: '#00FF00', blue: '#0000FF']   

// 我們使用下標(biāo)符號(hào)來檢查與 red 鍵相關(guān)聯(lián)的內(nèi)容
assert colors['red'] == '#FF0000'    
// 我們還可以使用屬性表示法來斷言顏色 green 的十六進(jìn)制表示
assert colors.green  == '#00FF00'    

// 我們可以使用下標(biāo)符號(hào)來添加新的鍵/值對(duì)
colors['pink'] = '#FF00FF' 
// 或者屬性表示法,添加 yellow 
colors.yellow  = '#FFFF00'           

assert colors.pink == '#FF00FF'
assert colors['yellow'] == '#FFFF00'

assert colors instanceof java.util.LinkedHashMap

當(dāng)使用鍵的名稱時(shí)源梭,我們實(shí)際上在Map中定義了字符串鍵娱俺。Groovy創(chuàng)建的 map 實(shí)際上是java.util.LinkedHashMap的實(shí)例。

如果 map 中不存在對(duì)應(yīng)的鍵废麻,則返回 null荠卷。例如:

assert colors.unknown == null

在上面的例子中,我們用了字符串類型的鍵烛愧,你也可以使用其他類型的值作為鍵:

def numbers = [1: 'one', 2: 'two']

assert numbers[1] == 'one'

在這里油宜,我們使用數(shù)字作為鍵,因?yàn)閿?shù)字可以明確地被識(shí)別為數(shù)字怜姿,因此Groovy不會(huì)像我們之前的例子那樣創(chuàng)建字符串鍵慎冤。有種場(chǎng)景,你如果要傳遞一個(gè)變量代替鍵沧卢,讓該變量的值成為鍵:

// 與“Guillaume”名稱關(guān)聯(lián)的鍵實(shí)際上是“key”字符串蚁堤,而不是與key變量關(guān)聯(lián)的值
def key = 'name'
def person = [key: 'Guillaume']      

// map 不包含 'name' 鍵
assert !person.containsKey('name')   
// map 包含 'key' 鍵
assert person.containsKey('key')  

您還可以傳遞帶引號(hào)的字符串以及鍵:["name": "Guillaume"]。您的字符串鍵必需是有效的標(biāo)識(shí)符但狭,例如您想創(chuàng)建一個(gè)包含哈希的字符串鍵披诗,如:["street-name": "Main street"]

當(dāng)您需要在 map 定義中將變量值作為鍵傳遞時(shí)立磁,必須用括號(hào)括起變量或表達(dá)式

// 這一次呈队,我們用括號(hào)括起key變量,讓解析器傳遞變量而不是定義字符串的鍵
person = [(key): 'Guillaume']        

// map 包含 'name' 鍵
assert person.containsKey('name')    
// map 不包含 'key' 鍵
assert !person.containsKey('key')
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末唱歧,一起剝皮案震驚了整個(gè)濱河市宪摧,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖绍刮,帶你破解...
    沈念sama閱讀 218,941評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件温圆,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡孩革,警方通過查閱死者的電腦和手機(jī)岁歉,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,397評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來膝蜈,“玉大人锅移,你說我怎么就攤上這事”ゲ” “怎么了非剃?”我有些...
    開封第一講書人閱讀 165,345評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長推沸。 經(jīng)常有香客問我备绽,道長,這世上最難降的妖魔是什么鬓催? 我笑而不...
    開封第一講書人閱讀 58,851評(píng)論 1 295
  • 正文 為了忘掉前任肺素,我火速辦了婚禮,結(jié)果婚禮上宇驾,老公的妹妹穿的比我還像新娘倍靡。我一直安慰自己,他們只是感情好课舍,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,868評(píng)論 6 392
  • 文/花漫 我一把揭開白布塌西。 她就那樣靜靜地躺著,像睡著了一般筝尾。 火紅的嫁衣襯著肌膚如雪捡需。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,688評(píng)論 1 305
  • 那天忿等,我揣著相機(jī)與錄音栖忠,去河邊找鬼。 笑死贸街,一個(gè)胖子當(dāng)著我的面吹牛庵寞,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播薛匪,決...
    沈念sama閱讀 40,414評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼捐川,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了逸尖?” 一聲冷哼從身側(cè)響起古沥,我...
    開封第一講書人閱讀 39,319評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤瘸右,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后岩齿,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體太颤,經(jīng)...
    沈念sama閱讀 45,775評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,945評(píng)論 3 336
  • 正文 我和宋清朗相戀三年盹沈,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了龄章。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,096評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡乞封,死狀恐怖做裙,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情肃晚,我是刑警寧澤锚贱,帶...
    沈念sama閱讀 35,789評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站关串,受9級(jí)特大地震影響拧廊,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜悍缠,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,437評(píng)論 3 331
  • 文/蒙蒙 一卦绣、第九天 我趴在偏房一處隱蔽的房頂上張望耐量。 院中可真熱鬧飞蚓,春花似錦、人聲如沸廊蜒。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,993評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽山叮。三九已至著榴,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間屁倔,已是汗流浹背脑又。 一陣腳步聲響...
    開封第一講書人閱讀 33,107評(píng)論 1 271
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留锐借,地道東北人问麸。 一個(gè)月前我還...
    沈念sama閱讀 48,308評(píng)論 3 372
  • 正文 我出身青樓,卻偏偏與公主長得像钞翔,于是被迫代替她去往敵國和親严卖。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,037評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理布轿,服務(wù)發(fā)現(xiàn)哮笆,斷路器来颤,智...
    卡卡羅2017閱讀 134,659評(píng)論 18 139
  • 第2章 基本語法 2.1 概述 基本句法和變量 語句 JavaScript程序的執(zhí)行單位為行(line),也就是一...
    悟名先生閱讀 4,149評(píng)論 0 13
  • 先來一個(gè)食材大集合,還有蝦生菜一開始忘記拍了项阴。有紅薯本讥,金針菇,香菇鲁冯,藕拷沸,腐竹,凍豆腐薯演,芹菜撞芍,生菜,魚豆腐跨扮,蟹棒序无,蝦...
    何家小廚閱讀 3,017評(píng)論 21 31
  • 如果有什么理想和愿望璃氢,那就去做哟玷,如果只是想想而不落實(shí)于行動(dòng),那就不是真的想要一也。 一次只能集中于一個(gè)目標(biāo)巢寡,多了你就會(huì)...
    花眼踩坑錄閱讀 313評(píng)論 2 1
  • 1,感恩我元旦買的漂亮的百合花開得特驕艷好喜歡椰苟,2抑月,感恩早早起來很開心的去排練旗袍秀,3舆蝴,感恩今天一整天活在愛和平...
    賴慶瑤新能源電動(dòng)汽車廣州閱讀 219評(píng)論 0 1