取出列表中以 x 开头的每个项目并将其放入新列表 - Rego
Take every item in list that starts with x and put it in a new list - Rego
list := ["a:aqsdf", "a:asdf", "b:gfs", "b:sdf", "a:adfd", "b:asdfd"]
我希望新列表只包含以 'a' 开头的项目:["a:aqsdf", "a:asdf", "a:adfd"]
我试过使用集合但没有成功。这在 python 中是轻而易举的事,但我似乎无法理解 rego。我可以把它变成一个集合,但不确定如何挤入 if 语句(startswith(list[_], "a") == true)
一种方法是使用数组理解和 startswith
内置函数:
[ x | x := list[_]; startswith(x, "a")]
游乐场示例:https://play.openpolicyagent.org/p/8mQYYvUL2h
这实际上是说如果规则主体为真,则定义一个包含 x
值的新数组。理解的规则体依次迭代 list
的所有指标以获得 x
的值,并且当 x
的值以 "a"
开头时将为真。 =20=]
参考文献:
list := ["a:aqsdf", "a:asdf", "b:gfs", "b:sdf", "a:adfd", "b:asdfd"]
我希望新列表只包含以 'a' 开头的项目:["a:aqsdf", "a:asdf", "a:adfd"]
我试过使用集合但没有成功。这在 python 中是轻而易举的事,但我似乎无法理解 rego。我可以把它变成一个集合,但不确定如何挤入 if 语句(startswith(list[_], "a") == true)
一种方法是使用数组理解和 startswith
内置函数:
[ x | x := list[_]; startswith(x, "a")]
游乐场示例:https://play.openpolicyagent.org/p/8mQYYvUL2h
这实际上是说如果规则主体为真,则定义一个包含 x
值的新数组。理解的规则体依次迭代 list
的所有指标以获得 x
的值,并且当 x
的值以 "a"
开头时将为真。 =20=]
参考文献: