collections.NewScratch
语法
collections.NewScratch
返回
maps.Scratch
别名
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
排序的 key
中的值数组。
{{ $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 }}