首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CodeQL“否则”-ish构造?

CodeQL“否则”-ish构造?
EN

Stack Overflow用户
提问于 2021-07-20 12:52:01
回答 1查看 29关注 0票数 0

我是CodeQL的新手,还在努力想办法解决这个问题。在半频繁的基础上,我发现自己需要一个支持指定“回退值”的语言结构来实现以下逻辑:

代码语言:javascript
复制
foot Foo(...) {
  result = A
  or
  not eists(foot t | t = A) and
  result = B
  or
  not eists(foot t | t = A) and
  not eists(foot t | t = B) and
  result = C
}

// aka
foot Foo(...) {
  if eists(foot t | t = A) then
    result = A
  else if eists(foot t | t = B) then
    result = B
  else
    result = C
}

CodeQL是否提供了一种以更优雅的方式对此进行重新表述的方法?我一遍又一遍地浏览了这些文档,寻找类似于以下内容的内容,但没有结果:

代码语言:javascript
复制
foot Foo(...) {
  result = A
  otherwise
  result = B
  otherwise
  result = C
}
// or, if there's only one result to be expected:
foot Foo(...) {
  result = first([ A, B, C ])
}

我觉得我的小程序员的大脑一定是遗漏了一些一直盯着我的脸的东西。

EN

回答 1

Stack Overflow用户

发布于 2022-03-05 17:38:28

目前似乎还没有这样的语言结构。然而,对于请求这些(或类似的)特性(#5348#5573),有一些讨论。

注意,在示例代码中,您可以将exists(foot t | t = A)简化为exists(A)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68455221

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档