函数模板
你可以使用 CUE 的定义或结构体来创建函数,就像对象(Object)一样。
通常情况下它有输入或输出,而且你可以实现任何你想要的功能。
有一个提出简化官方语法的提案,在 core builtin extensions 的开头获取更多细节。
function.cue
package function
import "strings"
// An input schema
#Input: {
count: int
msg: string
}
// An output schema
#Output: {
val: string
}
#Transform: {
// Input for the caller
X1="in": #Input
// output for the caller
out: #Output
// intermediate fields
_upper: strings.ToUpper(X1.msg)
_msg: strings.Join([_upper]*X1.count, " ")
// set output
out: val: _msg
}
// Call transform
result: #Transform & {in: {msg: "ra", count: 3}}
cue eval function.cue -e result
"in": {
"count": 3,
"msg": "ra"
},
"out": {
"val": "RA RA RA"
}