Groovy Map使用的小細節

2021-08-31 05:26:59 字數 664 閱讀 8775

def s = "hello"

def m = [:]

m << ["$s":'string1']

m << ["hello":'string2']

println m

assertequals m.hello, 'string2'

assertequals m["hello"], 'string2'

assertequals m.get("hello"), 'string2'

assertnull m.$s

assertequals m["$s"],'string2'

assertequals m.get("$s"),'string1'

最近用grails做東西出現bug,事後發現是對groovy中map使用不了解造成的。

使用了上面這兩行**來分別寫入與讀取

m << ["$s":'string1']

println m["$s"]

賦值的時候,key是gstring型別,如果用上面寫法用去取,會自動把key轉換成string型別,就會取不到,用m.get("$s")可以取到正確的值。

如果用string型別做key,以下兩種寫法,都可以

m << ["$s" as string :'string1']

m["$s"] = 'string1'

使用RocketMQ的小細節

目錄 訊息過濾 訂閱關係一致性 總結 訊息重試 訊息冪等 總結 說到訊息過濾,就不得不說到 tag。沒錯,就是我們之前在專業術語中提到過的 tag。也稱為訊息標籤,用來標記 topic 下的不同用途的訊息。在 rocketmq 中消費者是可以按照 tag 對訊息進行過濾。舉個電商交易場景的例子,使用...

typedef使用時的小細節

基礎不牢,地動山搖。今天在編譯的時候出現了個小錯誤困惑一下,主要是對typedef的理解不清晰造成的。其實typedef的使用跟取別名差不多。可以對比 很多情況下,typedef都是用於結構體的定義中。這裡是給tagdatastructnode這個結構體取了乙個別名,叫datastructnode。...

Vue使用小細節點

動態class繫結 新增text 平級別的css text vue的插值表示式,不僅能使用變數,還能使用js表示式,如下 計算屬性,方法,偵聽器 var vm new vue watch lastname function 計算屬性 有快取機制 當依賴的元素,沒有改變就不會再重新計算,用之前計算的結...