Swift类型转换

时间:2014-12-16 02:07:20

标签: swift type-conversion

所有

根据Swift编程书,p。 52,下面的代码不应该工作,因为x是Int64,y显然是Int16,但Swift操场批准了。

var x:Int = 32
var y:Int16 = 12

x + y

如果我使用 - ,*或/,编译器会对象,那么这是一个错误吗?如果没有,那么+?

的不同之处

迈克尔

1 个答案:

答案 0 :(得分:2)

+运算符有两个通用声明,可以在一侧处理Strideable值,在另一侧处理与第一个值Stride别名匹配的值。它适用于这种情况,因为(a)Int16通过Strideable符合RandomAccessIndexType,而IntStride的{​​{1}}别名其他整数类型。

换句话说,您正在调用这些函数中的第一个,而不是第二个函数:

Int16

文档: Int16 type+ operatorStrideable protocol