int lf = ((t.left==null) = (t.right==null)) ? 1:0;
Run Code Online (Sandbox Code Playgroud)
如果较大括号中的语句为真,则返回1,但在中间,是否为lefT分配正确的值?
Lee*_*ere 10
通常你有一个等号分配.赋值的返回与表达式的RHS相同.
您将在if中的表达式中使用等号,以便同时分配和检查结果.
// return first and third items added if they exist.
if ((list = GetItems()).Length > 2) { return list[0] + list[2]; }
Run Code Online (Sandbox Code Playgroud)
在这里你所拥有的只是一个编译器错误,因为t.left==null求值(true/false)并且你不能分配给它.