Go 头盔:如何在if-else条件下将字符串转换为小写/大写?

Go 头盔:如何在if-else条件下将字符串转换为小写/大写?,go,kubernetes,kubernetes-helm,Go,Kubernetes,Kubernetes Helm,用例:我有values.yaml,其中有一个字段mode 价值观 mode: start 或者,用户可以通过以下任一方式为字段模式输入值: mode: STart or START or sTart 现在,我有一个使用if条件的文件,如下所示: command: {{ if eq .Values.mode "start" }} do this {{ esle }} do that {{ end }} 现在,我的挑战是如何在进行比较之前将“.Values.mode”转换为

用例:我有values.yaml,其中有一个字段
mode

价值观

mode: start
或者,用户可以通过以下任一方式为字段
模式
输入值:

mode: STart or START or sTart
现在,我有一个使用if条件的文件,如下所示:

command: {{ if eq .Values.mode "start" }} do this {{ esle }} do that {{ end }}
现在,我的挑战是如何在进行比较之前将“.Values.mode”转换为较低的字母。我尝试过以下提到的方法:

mode: STart or START or sTart
一,

  • 以上两种方法都出错了

    注意:我们使用的是第三方工具,因此JSON模式检查对我没有帮助。

    是模板中交给您的函数。它有一个返回值,您希望将其与另一个值进行比较

    只需用括号将
    lower
    的函数调用分组:

    {{ if eq "start" (lower .Values.mode) }} do this {{ else }} do that {{ end }}
    

    谢谢你的回答,我正在使用头盔3,但它在那里不起作用。。它将进入另一部分(@SHC然后它看起来你的模式不是你想象的那样。试着打印它的值,寻找前导和尾随的空格…谢谢你的建议。我打印了值,没有空格。当我给一个函数值较低的键赋值时,它可以工作(mode={{.Values.mode | lower}.但在条件允许的情况下,它不会生效。
    {{ if eq "start" (lower .Values.mode) }} do this {{ else }} do that {{ end }}