Single-element parethesized expressions/tuples vs common use of parentheses

半城伤御伤魂 提交于 2019-11-30 06:01:30

问题


Sorry if this is trivial - I am so new to swift, actually I have only looked at the language guide+reference for a few minutes.

As far as I understand a parenthesized expression like (2,3) is used to construct a tuple, and (2) is a single-element tuple of type (Int).

But then what happens with common use of parentheses like (2+4) in expression (2+4)*5? Is this still a tuple of type (Int) multiplied by an Int?


回答1:


From Types in the Swift book:

If there is only one element inside the parentheses, the type is simply the type of that element. For example, the type of (Int) is Int, not (Int).

So the type of (2) or (2+4) is simply Int, and the * in (2+4)*5 is just integer multiplication.




回答2:


+, * etc are infix operators, and they have a semantic meaning that's different from the comma ,, so the compiler treats it in a different way.



来源:https://stackoverflow.com/questions/24767681/single-element-parethesized-expressions-tuples-vs-common-use-of-parentheses

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!