2

我喜欢把自己和语法上的事情混为一谈,而不是专注于真正做事情。:)

我知道我可以用这件事做什么,但我仍然想知道引擎盖下到底发生了什么。

所以......我只是想知道将字符串放在括号内有意义的原因和情况是什么。我看到了一个返回类似的方法

return (string1 + " " + string2);
4

5 回答 5

5

括号在此示例中无效。您发布的代码相当于:

return string1 + " " + string2;

一般来说,括号和Strings 或字符串文字之间没有特定的交互。括号与“正常”表达式具有相同的语义:对操作进行分组。

在某些情况下,可能需要括号来指定正确的解释:

System.out.println("foo: " + 1 + 1);   // will print "foo: 11"
System.out.println("foo: " + (1 + 1)); // will print "foo: 2"
于 2011-02-08T11:21:22.740 回答
2

它是一个合法的构造,它与代数中的括号具有相同的目的,以确保在返回之前完成操作。实际上在这种情况下它是不需要的,如果你这样做了

return string1 + " " + string2;  

结果是一样的。也许代码的作者认为它可能更具可读性?

于 2011-02-08T11:21:30.730 回答
1

只是可读性。如果要强调返回的对象,请放置括号。但它们不是必需的。

于 2011-02-08T11:21:53.037 回答
0

return看起来像一个函数调用,实际上不是。因此,这是一个不应使用括号的示例。

于 2011-02-08T12:02:18.247 回答
0

我只是想知道将字符串放在括号内有意义的原因和情况是什么。

这是另一个例子:

string1 + " " + string2.substring(a,b)

和:

(string1 + " " + string2).substring(a,b)

是两种截然不同的野兽。

于 2011-02-08T12:28:16.203 回答