blob: 92375b78dc83bb68df68337053a0906d197ad217 [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 -->
Marcel van Lohuizenf0c94042019-02-22 22:46:37 +010013_fieldcomp.cue:_
Marcel van Lohuizen75cb0032019-01-11 12:10:48 +010014```
15import "strings"
16
17a: [ "Barcelona", "Shanghai", "Munich" ]
18
19{
20 "\( strings.ToLower(v) )": {
Marcel van Lohuizen3e592b42019-01-11 20:31:29 +010021 pos: k + 1
Marcel van Lohuizen75cb0032019-01-11 12:10:48 +010022 name: v
23 nameLen: len(v)
24 } for k, v in a
25}
26```
27
28<!-- result -->
Marcel van Lohuizenf0c94042019-02-22 22:46:37 +010029`$ cue eval fieldcomp.cue`
Marcel van Lohuizen75cb0032019-01-11 12:10:48 +010030```
31barcelona: {
Marcel van Lohuizen75cb0032019-01-11 12:10:48 +010032 name: "Barcelona"
Marcel van Lohuizen00c373d2019-06-07 01:08:23 +020033 pos: 1
Marcel van Lohuizen75cb0032019-01-11 12:10:48 +010034 nameLen: 9
35}
36shanghai: {
Marcel van Lohuizen75cb0032019-01-11 12:10:48 +010037 name: "Shanghai"
Marcel van Lohuizen00c373d2019-06-07 01:08:23 +020038 pos: 2
Marcel van Lohuizen8a4bc922019-01-25 13:47:34 +010039 nameLen: 8
Marcel van Lohuizen75cb0032019-01-11 12:10:48 +010040}
41munich: {
Marcel van Lohuizen75cb0032019-01-11 12:10:48 +010042 name: "Munich"
Marcel van Lohuizen00c373d2019-06-07 01:08:23 +020043 pos: 3
Marcel van Lohuizen8a4bc922019-01-25 13:47:34 +010044 nameLen: 6
Marcel van Lohuizen75cb0032019-01-11 12:10:48 +010045}
Marcel van Lohuizen8a4bc922019-01-25 13:47:34 +010046```