Add new builtin for merging maps
Bewertung
- Schwierigkeit
- 5/5
- Geschätzter Aufwand
- Über eine Woche
- Anfängerfreundlichkeit
- 35/100
Rechercherichtung
Es werden keine Dateien oder Tests genannt. Beginne damit zu prüfen, wie vorhandene builtins Maps behandeln und wie concat spezifiziert ist; kläre dann, ob dies ein neues merge/copy-builtin oder eine Erweiterung von concat sein sollte. Als abgeschlossen gilt die Aufgabe, wenn das Beispiel des Issues mit verschachtelten Feldern mit dokumentierter Merge-Semantik funktioniert und Tests das Verhalten abdecken.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
Expr currently does not have a builtin for merging maps. Adding a new builtin would be useful to merge maps but also to modify nested fields.
For instance:
/*
Env:
{
"data":{
"status": 0,
"rows": 32,
"signing_keys":[
"key1",
"key2"
]
}
}
*/
merge($env["data"], {signing_keys: concat($env["data"]["signing_keys"], ["another"])})
/*
Output:
{
"data":{
"status": 0,
"rows": 32,
"signing_keys":[
"key1",
"key2",
"another"
]
}
}
*/
As for the name, "merge" seems natural but I would also consider using "copy" (as used in Go's maps package). Other possibility is to modify "concat" to support both arrays and maps.
- Vorherrschende Sprache
- Go
- Sterne
- 8k
- Forks
- 533
- PR-Merge-Kennzahlen
- Keine gemergten PRs in 30 T.
Entwicklungsumgebung
Dieses Projekt bietet weder Dev-Container noch Dockerfile noch Beitragsleitfaden – die Einrichtung liegt bei Ihnen. Beginnen Sie mit der README; die allgemeinen Schritte stehen in unserem Leitfaden für den ersten Beitrag.
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus expr-lang/expr
-
Docs: Built in functions shadow user variablesEvtl. vergeben @sanmaxdev hat das vor 105 Tagen übernommen. Offendocs needed
Schwierigkeit 1/5 1-3 Stunden Anfängerfreundlichkeit 62/100
-
`in` operator on a struct doesn't respect `expr` tagsEvtl. vergeben @akashchamp hat das vor 25 Tagen übernommen. Offen
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 65/100
-
`find`, `findIndex`, `first` and `get` are type-checked as the element type where they return nilEvtl. vergeben @TastyHeadphones hat das vor 22 Tagen übernommen. Offen
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 65/100
-
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 35/100
-
Schwierigkeit 5/5 Über eine Woche Anfängerfreundlichkeit 35/100
Ähnliche Issues
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 82/100
blinklabs-io/dingo#5368 ·
Maintainer antworten meist innerhalb von 1 Tag
-
difficulty: easy enhancement frontend good first issue help wanted priority: P2
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
rafaelsilvabr/pdfHandler#18 ·
-
Schwierigkeit 2/5 1-2 Tage Anfängerfreundlichkeit 78/100
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 83/100
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 85/100
Maintainer antworten meist innerhalb von 1 Tag