假设我有一个字符串,为了简单起见,可能是“Enable && Signal”。
我想把这个字符串转换成tcl中的标准&&操作,这样,如果任何一个值为假,Enable && Signal将返回0,只有当两个值都为真时才返回1。
有没有一个简单的方法可以做到这一点,就我的情况而言,我需要一个泛型方法,其中参数的数量可以是任意的,并执行逻辑/关系操作,如&&||==〈=〉!=等等
任何帮助和见解将不胜感激。
谢谢
我最初尝试将参数拆分为条件列表和数据列表,但无法处理操作的优先级。像==这样的操作需要在n^n个组合的第一个和后面的&&操作中完成
1条答案
按热度按时间hvvq6cgz1#
我假设在你的例子中,Enable和Signal都是Tcl变量。所以,要将字符串传递给
expr
,所需要做的就是在所有标识符前面加上一个'$'。这可以通过regsub
来完成,如下所示:由于\m\M的原因,这个方法会适当地保留1 e3这样的数字。但是如果你还想使用
sin(x)
这样的函数,这个方法福尔斯不够用了。如果这也是一个要求,那么一个负的前瞻可能会有帮助:这将产生:
sin($x) * cos($y)