我的方法中的最后一行应该是
return methodName(xxx,xxx);
Run Code Online (Sandbox Code Playgroud)
但我有它
return (xxx,xxx);
Run Code Online (Sandbox Code Playgroud)
方法返回类型是bool,我只是在调试问题时才注意到拼写错误.我没想到return (xxx,xxx);要编译.它究竟做了什么?
()运算符的返回值
这不是()运算符的调用.()运算符的语法需要函数的标识符或正在调用的变量.如果没有标识符,表达式周围的括号将用于对子表达式进行分组,并可能更改操作的执行顺序.例如:1 - (2 - 3)对后两个操作数进行分组,结果与之不同1 - 2 - 3.以下是括号调用函数的示例:1 - cos(2 - 3).
在你的情况下,没有兄弟表达式,所以括号不会改变任何东西的顺序,表达式相当于
return xxx,xxx;
Run Code Online (Sandbox Code Playgroud)
这是逗号运算符的调用,类似于:
xxx;
return xxx;
Run Code Online (Sandbox Code Playgroud)
只要xxx可以隐式转换为函数的返回类型,就可以很好地形成它.