我的方法中的最后一行应该是
UIStackView
但是我把它作为
return methodName(xxx,xxx);
方法返回类型是 bool ,我只是在调试问题时才注意到拼写错误。我没想到return (xxx,xxx);
要编译。它究竟做了什么?
答案 0 :(得分:5)
返回()运算符
的值
这不是()运算符的调用。 ()运算符的语法需要函数的标识符或正在调用的变量。如果没有标识符,表达式周围的括号将用于对子表达式进行分组,并可能更改操作的执行顺序。例如:1 - (2 - 3)
对后两个操作数进行分组,结果与1 - 2 - 3
不同。以下是括号调用函数的示例:1 - cos(2 - 3)
。
在你的情况下,没有兄弟表达式,因此括号不会改变任何顺序,表达式等同于
return xxx,xxx;
这是逗号运算符的调用,类似于:
xxx;
return xxx;
只要xxx
可隐式转换为函数的返回类型,就可以很好地形成。
答案 1 :(得分:0)
逗号,
运算符将返回提供列表中的最后一个元素。
return (a, b, c)
等于return c
,即返回的最后一个元素c
答案 2 :(得分:0)
The method return type is bool
是重要的一点。
C ++的主要目标是评估表达式并在
中return (expression1,expression2);
你有两个表达式expression1
和expression2
,它们一个接一个地被评估(逗号 - 它只是一个分隔符 - 这个位)。
由于expression2
是最后一个,所以返回它所评估的任何值。如果expression2
返回非零值,则返回的值为true
,如果不是false
。
Sidenote :虽然,
可以重载,但问题很明显,您只是将其用作分隔符