Maison > développement back-end > Golang > Comment renvoyer false par défaut si la propriété n'existe pas dans le fichier values.yaml ?

Comment renvoyer false par défaut si la propriété n'existe pas dans le fichier values.yaml ?

WBOY
Libérer: 2024-02-09 08:51:11
avant
472 Les gens l'ont consulté

如果values.yaml 文件中不存在属性,如何返回默认 false?

L'éditeur PHP Youzi est là pour répondre à une question courante : "Si l'attribut n'existe pas dans le fichier values.yaml, comment renvoyer la valeur false par défaut ?" fichier yaml pour définir les paramètres de configuration. Lorsque nous voulons obtenir la valeur d'un certain attribut, si l'attribut n'existe pas dans le fichier values.yaml, nous pouvons utiliser certaines méthodes pour renvoyer la valeur par défaut. Voici quelques solutions courantes.

Contenu de la question

fichier yaml. J'ai une valeur définie sous global comme indiqué ci-dessous

global:
  logging:
    log4j:
     enabled: true
Copier après la connexion

J'ai aussi une fonction auxiliaire

{{- define "helm-basic-template.logging-enabled" -}}
{{ .Values.global.logging.log4j.enabled | default "false" }}
{{- end -}}
Copier après la connexion

La propriété global.logging.log4j.enabled peut ne pas exister, auquel cas je souhaite que la fonction d'assistance renvoie false, sinon renvoie la valeur de la propriété. Mais cela ne fonctionne pas comme je l'espérais. Une idée de ce qui ne va pas avec ma fonction ? Ou existe-t-il une autre meilleure façon de le réécrire ? Merci

Solution

Pour éviter que les variables ne soient indéfinies, des vérifications supplémentaires sont requises ici.

Selon la documentation Helm, lorsque l'objet est vide, l'instruction if renvoie false.

Le tuyau sera évalué à faux si la valeur est : 

  • Valeur booléenne fausse
  • Numéro Zéro
  • chaîne vide
  • nil (vide ou nul)
  • Collection vide (carte, tranche, tuple, dictionnaire, tableau)

Utilisez directement le chèque ci-dessous.

{{- if .Values.global }}
{{- if .Values.global.logging }}
{{- if .Values.global.logging.log4j }}
{{- if .Values.global.logging.log4j.enabled }}
apiVersion: v1
kind: ConfigMap
metadata:
  name: logging-cm
data:
  conf.json: |
    xxxxx
...
{{- end }}
{{- end }}
{{- end }}
{{- end }}
Copier après la connexion

Ou utilisez la méthode du modèle nommé.

{{- define "helm-basic-template.logging-enabled" -}}
{{- $val := false }}
{{- if .Values.global -}}
{{- if .Values.global.logging -}}
{{- if .Values.global.logging.log4j -}}
{{- if .Values.global.logging.log4j.enabled -}}
{{- $val = true }}
{{- end -}}
{{- end -}}
{{- end -}}
{{- end -}}
{{ $val }}
{{- end -}}
Copier après la connexion

Ou utilisez default pour définir une simple valeur par défaut.

{{- define "helm-basic-template.logging-enabled" -}}
{{- .Values.global.logging.log4j.enabled | default false .Values.global.logging.log4j.enabled -}}
{{- end -}}
Copier après la connexion

Ou utilisez dig pour sélectionner une clé dans une liste de valeurs.

{{- define "helm-basic-template.logging-enabled" -}}
{{- dig "logging" "log4j" "enabled" false .Values.global -}}
{{- end -}}
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:stackoverflow.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal