collections.NewScratch
collections.NewScratch 函數創建一個本地範圍的 便條本 用於存儲和操作數據。要創建一個附加到 Page 物件的便條本,請使用 Scratch 或 Store 方法。
方法
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
接受一個 key,mapKey 和 value,將一個 mapKey 和 value 添加到給定的 key 所指的地圖中。
{{ $s := newScratch }}
{{ $s.SetInMap "greetings" "english" "Hello" }}
{{ $s.SetInMap "greetings" "french" "Bonjour" }}
{{ $s.Get "greetings" }} → map[english:Hello french:Bonjour]
DeleteInMap
接受一個 key 和 mapKey,並從給定的 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 物件的 Scratch 或 Store 方法中使用此方法。
{{ $s := newScratch }}
{{ $s.SetInMap "greetings" "english" "Hello" }}
{{ $s.SetInMap "greetings" "french" "Bonjour" }}
{{ $map := $s.Values }}