我希望在将在FreeBSD、macOS和Linux上执行的makefile中使用shell赋值操作符(即FreeBSD)。下面是一个例子:$a:以下是预期的输出:$ make all2不幸的是,macOS蒙特雷12.6.1附带的GNU不支持shell赋值操作符,该示例的输出为空。它适用于最近版本的GNU (例如,4.4),在最近的Linux发行版中可能会遇到这种情况。
如果我希望这个makefile与任何版本的
Nullish合并运算符允许在变量不是null或undefined时赋值,否则为表达式赋值。 a = b ??other 这是对以前使用的||的改进,因为如果b是空字符串或其他假的值,||也会指定其他值,但不是空值。但是,有时我们也会使用&&进行赋值,例如 a = b && func(b) 这里我们只想在b上做func,如果它不是空的,否则指定空的b。 当然,&&会检查错误,而不是nullishness。
WeaponRange;(unit as RangedUnit)?.如果refTypeInstance不是null,那么执行该语句)
空条件运算符不能在赋值语句的左边使用,因为这违反了赋值语句的表达式树的预期计算逻辑(短路了赋值操作,而根本没有执行)理想的解决方案是一个新的条件赋值操作符(只在赋值的左边不为空的情况下执行),实质上是‘如果不是空</e