为什么我无法获取从 scriban 中的函数返回的字符串的大小?

Why I cannot get size of the string returned from function in scriban?

我正在 scriban 中测试以下代码:

{{ func getString }}text{{ end }}

然而,当我尝试使用以下方法获取文本长度时:

{{ getString | string.size }}

我总是得到 0,而我期望得到 4。这是为什么?

问题中定义的函数 getString 打印 "text" 输出,return 没有任何结果,因此 string.size 的结果为 0。您可以将此指令视为对 printf 或 Console.Writeline 的调用 - 它会打印要输出的字符串,但您不能对该字符串执行更多操作。要 return 来自方法的字符串以便能够进一步处理它,您需要使用 ret:

{{ func getString
    ret 'text'
end }}

然后输出

{{ getString | string.size }}

将是 4。