如何将一个长的 Go 模板函数拆分成多行?

How to split a long Go template function across multiple lines?

我在 Go 模板中有一个很长的 printf 调用。示例:

{{ printf "mongodb://%s:%s@%s/%s?authSource=admin&replicaSet=%s&readPreference=nearest&w=majority" .Values.rocketchat.mongo.username .Values.rocketchat.mongo.password .Values.rocketchat.mongo.database .Values.mongodb-replicaset.replicaSetName | b64enc | quote }}

如何将其拆分为多行(如下所示)?

{{ printf "mongodb://%s:%s@%s/%s?authSource=admin&replicaSet=%s&readPreference=nearest&w=majority"
    .Values.rocketchat.mongo.username
    .Values.rocketchat.mongo.password
    .Values.rocketchat.mongo.database
    .Values.mongodb-replicaset.replicaSetName
    | b64enc | quote }}

这是不可能的。来自 text/template 文档:

Except for raw strings, actions may not span newlines, although comments can.

我认为您需要改用字符串文字,请在此处查看一些示例:https://golang.org/src/html/template/example_test.go