collections.NewScratch

collections.NewScratch 函數創建一個本地範圍的 便條本 用於存儲和操作數據。要創建一個附加到 Page 物件的便條本,請使用 ScratchStore 方法。

方法

Set

設置給定鍵的值。

{{ $s := newScratch }}
{{ $s.Set "greeting" "Hello" }}
Get

獲取給定鍵的值。

{{ $s := newScratch }}
{{ $s.Set "greeting" "Hello" }}
{{ $s.Get "greeting" }} → Hello
Add

將給定的值添加到該鍵現有的值中。

對於單個值,Add 接受支持 Go + 運算符的值。如果某鍵的第一個 Add 為數組或切片,後續的值將添加到該列表中。

{{ $s := newScratch }}
{{ $s.Set "greeting" "Hello" }}
{{ $s.Add "greeting" "Welcome" }}
{{ $s.Get "greeting" }} → HelloWelcome
{{ $s := newScratch }}
{{ $s.Set "total" 3 }}
{{ $s.Add "total" 7 }}
{{ $s.Get "total" }} → 10
{{ $s := newScratch }}
{{ $s.Set "greetings" (slice "Hello") }}
{{ $s.Add "greetings" (slice "Welcome" "Cheers") }}
{{ $s.Get "greetings" }} → [Hello Welcome Cheers]
SetInMap

接受一個 keymapKeyvalue,將一個 mapKeyvalue 添加到給定的 key 所指的地圖中。

{{ $s := newScratch }}
{{ $s.SetInMap "greetings" "english" "Hello" }}
{{ $s.SetInMap "greetings" "french" "Bonjour" }}
{{ $s.Get "greetings" }} → map[english:Hello french:Bonjour]
DeleteInMap

接受一個 keymapKey,並從給定的 key 的地圖中刪除對應的 mapKey

{{ $s := newScratch }}
{{ $s.SetInMap "greetings" "english" "Hello" }}
{{ $s.SetInMap "greetings" "french" "Bonjour" }}
{{ $s.DeleteInMap "greetings" "english" }}
{{ $s.Get "greetings" }} → map[french:Bonjour]
GetSortedMapValues

返回按 mapKey 排序後的數組值。

{{ $s := newScratch }}
{{ $s.SetInMap "greetings" "english" "Hello" }}
{{ $s.SetInMap "greetings" "french" "Bonjour" }}
{{ $s.GetSortedMapValues "greetings" }} → [Hello Bonjour]
Delete

刪除給定的鍵。

{{ $s := newScratch }}
{{ $s.Set "greeting" "Hello" }}
{{ $s.Delete "greeting" }}
Values

返回原始的底層地圖。由於並發問題,不應在 Page 物件的 ScratchStore 方法中使用此方法。

{{ $s := newScratch }}
{{ $s.SetInMap "greetings" "english" "Hello" }}
{{ $s.SetInMap "greetings" "french" "Bonjour" }}

{{ $map := $s.Values }}