github.com/coveo/gotemplate@v2.7.7+incompatible/docs/doc_test/collections.razor (about) 1 {% include navigation.html %} 2 {% raw %} 3 4 # Data collections (lists/slices and dicts/maps) 5 6 ## Maps 7 8 | Razor | Gotemplate | Note 9 | --- | --- | --- 10 | `{{- assertWarning (isNil $.razorDict) "$.razorDict has already been declared, use = to overwrite existing value" }}{{- set $ "razorDict" (dict "test" 1 "test2" 2) }}` | `{{- set $ "goDict" (dict "test" 1 "test2" 2) }}` | Creation 11 | `{{- assertWarning (isNil $.razorDict2) "$.razorDict2 has already been declared, use = to overwrite existing value" }}{{- set $ "razorDict2" (dict "test3" 3 "test5" 5) }}` | `{{- set $ "goDict2" (dict "test3" 3 "test5" 5) }}` | Creation 12 | `{{ set .razorDict "test2" 3 }}` | `{{- set .goDict "test2" 3 }}` | Update 13 | `{{ set .razorDict "test3" 4 }}` | `{{- set .goDict "test3" 4 }}` | Update 14 | `{{- assertWarning (not (isNil $.razorDict)) "$.razorDict does not exist, use := to declare new variable" }}{{- set $ "razorDict" (merge $.razorDict $.razorDict2) }}` | `{{- set $ "goDict" (merge .goDict .goDict2) }}` | Merge (First dict has priority) 15 | `{{ $.razorDict.test3 }}` | `{{ $.goDict.test3 }}` | Should be `4` 16 | `{{ $.razorDict.test5 }}` | `{{ $.goDict.test5 }}` | Should be `5` 17 | `{{ extract $.razorDict "test" "test3" "undef" }}` | `{{ extract $.goDict "test" "test3" "undef" }}` | Extract values, should be `[1,4,null]` 18 | `{{ slice $.razorDict "test" "test9" }}` | `{{ slice $.goDict "test" "test9" }}` | Slice values, should be `[1,3,4,5]` 19 | `{{ slice $.razorDict "test9" "test" }}` | `{{ slice $.goDict "test9" "test" }}` | Slice values, should be `[5,4,3,1]` 20 | `{{ keys $.razorDict }}` | `{{ keys $.goDict }}` | Get keys, should be `["test","test2","test3","test5"]` 21 | `{{ values $.razorDict }}` | `{{ values $.goDict }}` | Get values, should be `[1,3,4,5]` 22 23 ### Looping 24 25 #### Razor 26 27 ```go 28 {{- range $key, $value := $.razorDict }} 29 {{ $key }}, {{ $value }}, {{ get $.razorDict $key }} 30 {{- end }} 31 ``` 32 33 #### Gotemplate 34 35 ```go 36 {{- range $key, $value := .goDict }} 37 {{ $key }}, {{ $value }}, {{ get $.goDict $key }} 38 {{- end }} 39 ``` 40 41 #### Result 42 43 ```go 44 test, 1, 1 45 test2, 3, 3 46 test3, 4, 4 47 test5, 5, 5 48 ``` 49 50 ## Slices 51 52 | Razor | Gotemplate | Note 53 | --- | --- | --- 54 | `{{- assertWarning (isNil $.razorList) "$.razorList has already been declared, use = to overwrite existing value" }}{{- set $ "razorList" (list "test1" "test2" "test3") }}` | `{{- set $ "goList" (list "test1" "test2" "test3") }}` | Creation 55 | `{{- assertWarning (not (isNil $.razorList)) "$.razorList does not exist, use := to declare new variable" }}{{- set $ "razorList" (append $.razorList "test4") }}` | `{{- set $ "goList" (append .goList "test4") }}` | Append 56 | `{{- assertWarning (not (isNil $.razorList)) "$.razorList does not exist, use := to declare new variable" }}{{- set $ "razorList" (prepend $.razorList "test0") }}` | `{{- set $ "goList" (prepend .goList "test0") }}` | Prepend 57 | `{{ $.razorList }}` | `{{ $.goList }}` | Should be `["test0","test1","test2","test3","test4"]` 58 | `{{ contains $.razorList "test1" "test2" }}` | `{{- contains .goList "test1" "test2" }}` | Check if element is in list 59 | `{{ has "test1" $.razorList }}` | `{{- has "test1" .goList }}` | has is an alias to contains 60 | `{{ has $.razorList "test1" }}` | `{{- has .goList "test1" }}` | has Support inversion of argument if the first one is not a list 61 | `{{ has $.razorList "test1" "test2" }}` | `{{- has .goList "test1" "test2" }}` | has can also test for many elements 62 | `{{ $.razorList.Contains "test1" "test2" }}` | `{{ .goList.Contains "test1" "test2" }}` | List also support using methods 63 | `{{ $.razorList.Reverse }}` | `{{ .goList.Reverse }}` | Should be `["test4","test3","test2","test1","test0"]` 64 65 ### Looping 66 67 #### Razor 68 69 ```go 70 {{- range $index, $value := $.razorList }} 71 {{ $index }}, {{ $value }}, {{ extract $.razorList $index }} 72 {{- end }} 73 ``` 74 75 #### Gotemplate 76 77 ```go 78 {{- range $index, $value := .goList }} 79 {{ $index }}, {{ $value }}, {{ extract $.goList $index }} 80 {{- end }} 81 ``` 82 83 #### Result 84 85 ```go 86 0, test0, test0 87 1, test1, test1 88 2, test2, test2 89 3, test3, test3 90 4, test4, test4 91 ``` 92 93 {% endraw %}