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 }}