blob: 1f42a307a006aea6d1db85ad4c4d11ab9d3ad2ed [file] [log] [blame] [view]
Marcel van Lohuizen75cb0032019-01-11 12:10:48 +01001[TOC](Readme.md) [Prev](listcomp.md) [Next](conditional.md)
2
Marcel van Lohuizenaf0932f2019-01-11 13:03:56 +01003_Expressions_
4
Marcel van Lohuizen75cb0032019-01-11 12:10:48 +01005# Field Comprehensions
6
7CUE also supports comprehensions for fields.
8
9One cannot refer to generated fields with references.
10Instead, one must use indexing.
11
12<!-- CUE editor -->
13```
14import "strings"
15
16a: [ "Barcelona", "Shanghai", "Munich" ]
17
18{
19 "\( strings.ToLower(v) )": {
Marcel van Lohuizen3e592b42019-01-11 20:31:29 +010020 pos: k + 1
Marcel van Lohuizen75cb0032019-01-11 12:10:48 +010021 name: v
22 nameLen: len(v)
23 } for k, v in a
24}
25```
26
27<!-- result -->
28```
29barcelona: {
30 pos: 1
31 name: "Barcelona"
32 nameLen: 9
33}
34shanghai: {
35 pos: 2
36 name: "Shanghai"
Marcel van Lohuizen8a4bc922019-01-25 13:47:34 +010037 nameLen: 8
Marcel van Lohuizen75cb0032019-01-11 12:10:48 +010038}
39munich: {
40 pos: 3
41 name: "Munich"
Marcel van Lohuizen8a4bc922019-01-25 13:47:34 +010042 nameLen: 6
Marcel van Lohuizen75cb0032019-01-11 12:10:48 +010043}
Marcel van Lohuizen8a4bc922019-01-25 13:47:34 +010044```