我发现了一个if
语句,其中条件实际上是一种赋值方式,但我并不真正理解它的作用。现在,我找到了一个类似的问题,并得到了详细的答案,但我仍然不太明白我的代码片段具体做什么:
if ((x = !x))
/* some code */
我找到了一个类似的问题:https://unix.stackexchange.com/questions/306111/what-is-the-difference-between-the-bash-operators-vs-vs-vs 其中一位用户指出:
双括号 ((...)) 包含一个算术指令,即对整数进行计算,并使用类似其他编程语言的语法。此语法主要用于赋值和条件语句中。这仅存在于ksh/bash/zsh中,而不是普通的sh。
这是什么意思?现在x的值已经切换了,除此之外还发生了什么?在什么情况下此条件返回false?