函数模板



你可以使用 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"
}
我们绝不会将你的邮箱分享给任何人。
2022 Hofstadter, Inc