对不起,如果这是微不足道的 - 我对swift很新,实际上我只看了几分钟的语言指南+参考。
据我所知,像(2,3)
这样的括号表达式用于构造元组,而(2)
是(Int)
类型的单元素元组。
但是在表达式(2+4)
中常见的括号如(2+4)*5
会发生什么?这仍然是(Int)
类型的元组乘以Int
吗?
答案 0 :(得分:6)
来自Swift书中的Types:
如果括号内只有一个元素,则类型为 只是该元素的类型。例如,
(Int)
的类型是Int
,而非(Int)
。
因此(2)
或(2+4)
的类型只是Int
,*
中的(2+4)*5
是
只是整数乘法。
答案 1 :(得分:0)
+
,*
等是中缀运算符,它们的语义与逗号,
不同,因此编译器会以不同的方式处理它。