2016-08-08 2 views
6

Dans HOCON et Typesafe Config, comment définir la valeur par défaut en cas de substitution.HOCON Valeur par défaut de substitution

Est-ce qu'il supporte quelque chose comme ça?

${server.host: 'localhost'} -> Si set server.host (dans les mêmes fichiers CONFIGU ou par l'établissement d'environement), il substitue que si pas encore défini choisissez la valeur par défaut

+0

question similaires: http://stackoverflow.com/questions/26648416/how -set-default-liste-valeur-si-variable-système-n'est-pas-présente-dans-typesafe-configu – Vadzim

Répondre

3

A partir des documents officiels sur substitutions:

Si une substitution avec la syntaxe $ est pas définie {foo?}:

  • si elle est la valeur d'un champ d'objet, le champ ne doit pas être créé. Si le champ aurait remplacé une valeur précédemment définie pour le même champ, la valeur précédente reste.

Voici donc une solution de contournement possible en utilisant object merging:

defaults { 
    foo: "default Value" 
} 

item = ${defaults} { 
    foo: ${?bar} 
} 

Ou encore plus simple:

item = { 
    foo: "default Value" 
    foo: ${?bar} 
}