Hacktoberfest 2026 : les issues que les mainteneurs ont marquées pour octobre, ouvertes et accessibles aux débutants. Parcourir les issues Hacktoberfest

Add new builtin for merging maps

Ouverte
#895 2 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

@eyupcanakman y travaille déjà.

Depuis le 20/3/2026.

  • #947 par @eyupcanakman — ouverte

Évaluation

Difficulté
5/5
Temps estimé
Plus d'une semaine
Accessibilité débutants
35/100
Type d'issue
Fonctionnalité
Clarté
Plutôt claire
Activité
À l'abandon
Stack technique
go
Domaine
compilers

Piste de recherche

Aucun fichier ni test n’est nommé. Commencez par examiner comment les builtins existants gèrent les maps et comment concat est spécifié, puis déterminez s’il devrait s’agir d’un nouveau builtin de merge/copy ou d’une extension de concat. Le travail est considéré comme terminé lorsque l’exemple de l’issue avec des champs imbriqués fonctionne avec une sémantique de merge documentée et que les tests couvrent le comportement.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Description

feature

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.

Langage dominant
Go
Étoiles
8k
Forks
533
Métriques de merge des PR
Aucune PR mergée en 30 j

Préparer son environnement

Ce projet ne fournit ni conteneur de développement, ni Dockerfile, ni guide de contribution : l'installation est à votre charge. Commencez par son README, et consultez notre guide de la première contribution pour les étapes générales.

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Autres issues de expr-lang/expr

Toutes les issues de expr-lang/expr

Issues similaires

Plus d'issues Go

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.