pour créer une nouvelle carte et de l'affecter à une variable.
Maintenant, pourquoi le put appel imprimé.
Tout ce qui n'est pas à l'intérieur d'une directive, comme #set(not printed) ou #if(not printed) ou #foreach(again not printed), est imprimé, y compris du texte libre, des variables et des les appels de méthode.
Vitesse ne peut pas distinguer entre $myMap.get('mykey') et $myMap.put('key', 'value'), de sorte que le résultat de la put appel est imprimé.
Chaque fois que quelque chose ne peut pas être correctement évaluée, car une variable n'est pas définie ou quelque part le long de la ligne une méthode retourne null, le code qui n'a pas pu être évalué est l'objet de dumping littéralement dans la sortie.
Que la documentation de la put méthode etats, la fonction renvoie la valeur précédente stockées pour cette clé, ou null si aucune valeur n'a été définie.
En résumé, il est normal de se que ligne imprimée.
Aussi, assurez-vous que vous utilisez une version moderne de la Vitesse. Anciennes n'ont pas de carte de syntaxe dans VTL.
Oh, j'ai probablement fait une erreur tout le temps. #set( $myMap = {} ) + $myMap.put("mykey1", "mavaleur") crée la sortie > $myMap.put("mykey1", "mavaleur"). J'ai commencé avec de la Vitesse. Je pensais que lorsque la commande est partie de la sortie, la commande n'a pas été accepté ou reconnu. Est-ce un bug ou pourquoi la commande est partie ot la sortie si tout fonctionne correctement?
Que Nathan a dit, vous devez utiliser:
pour créer une nouvelle carte et de l'affecter à une variable.
Maintenant, pourquoi le
put
appel imprimé.Tout ce qui n'est pas à l'intérieur d'une directive, comme
#set(not printed)
ou#if(not printed)
ou#foreach(again not printed)
, est imprimé, y compris du texte libre, des variables et des les appels de méthode.Vitesse ne peut pas distinguer entre
$myMap.get('mykey')
et$myMap.put('key', 'value')
, de sorte que le résultat de laput
appel est imprimé.Chaque fois que quelque chose ne peut pas être correctement évaluée, car une variable n'est pas définie ou quelque part le long de la ligne une méthode retourne
null
, le code qui n'a pas pu être évalué est l'objet de dumping littéralement dans la sortie.Que la documentation de la
put
méthode etats, la fonction renvoie la valeur précédente stockées pour cette clé, ounull
si aucune valeur n'a été définie.En résumé, il est normal de se que ligne imprimée.
Essayer cette théorie, vous pouvez faire ceci:
Ce sera imprimée:
Il y a deux choses que vous pouvez faire de sorte que la ligne n'est pas imprimé:
Stocker le résultat de la fonction dans une variable temporaire:
#set ($discard = $myMap.put('key', 'value')
Silencieuse appel de la méthode:
$!myMap.put('key', 'value')
Je recommanderais le premier, puisque le second s'imprime toujours quelque chose quand vous remplacez une valeur existante.
OriginalL'auteur Sergiu Dumitriu
Avez-vous essayez de faire:
Aussi, assurez-vous que vous utilisez une version moderne de la Vitesse. Anciennes n'ont pas de carte de syntaxe dans VTL.
OriginalL'auteur Nathan Bubna