gpt4 book ai didi

jsonnet - Jsonnet中如何将字符串解析为 bool 值

转载 作者:行者123 更新时间:2023-12-05 03:07:59 26 4
gpt4 key购买 nike

我有一个接受 bool 值作为参数的 jsonnet 函数。假设我有一个名为 deploy.jsonnet 的 jsonnet 文件:

function (image='', isReady) {
local config = self,
deploy: if isReady then [ do deployment ]
else [don't do deployment]

我将值传递给此函数,例如:

jsonnet -A name=new-deployment -A isReady=true deploy.jsonnet

但问题是 -A 总是以字符串形式提供值,因此条件检查将失败并显示消息:

RUNTIME ERROR: Condition must be boolean, got string.
./deploy.jsonnet:(133:45)-(148:15) object <anonymous>
During manifestation

我也没有看到将字符串解析为 bool 值的选项。

问题是 - 有没有什么方法可以将 bool 值传递给 jsonnet 中的函数,或者我们可以将字符串解析为 bool 值吗?

最佳答案

是的,可以通过 --tla-code(而不是 -A),例如:

jsonnet -A name=new-deployment --tla-code isReady=true deploy.jsonnet

不同之处在于,它不是将值视为字符串,而是将其视为 jsonnet 代码。因此也可以通过这种方式传递对象、数组甚至函数。

关于将字符串转换为 bool 值。虽然我认为没有内置方法可以做到这一点,但推出您自己的功能非常容易:

local stringToBool(s) =
if s == "true" then true
else if s == "false" then false
else error "invalid boolean: " + std.manifestJson(s);

关于jsonnet - Jsonnet中如何将字符串解析为 bool 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46241460/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com