Reputation: 5082
Type Inference is a powerful attribute of Swift. It means the compiler can infer the literal's type from its value provided by the programmer, the explicit type specification is not needed.
For example var IntNum = 3
; the compiler can infer that the variable IntNum
is of type Int. In Xcode, If user hits the key and clicks on the variable name, here IntNum
, then Xcode tells you what the type it is.
However, if I did that on the literal value 3
, Xcode provides nothing. I guess, the literal value I put on the screen simply has no type at all, only the object variable and constant has the type property.
I just guess so, can someone explain that to me?
Cheers SL
Upvotes: 0
Views: 93
Reputation: 285069
That's right.
From the documentation
Type Safety and Type Inference
Type inference is particularly useful when you declare a constant or variable with an initial value. This is often done by assigning a literal value (or literal) to the constant or variable at the point that you declare it. (A literal value is a value that appears directly in your source code)
...
If you combine integer and floating-point literals in an expression, a type of Double will be inferred from the context:
let anotherPi = 3 + 0.14159 // anotherPi is also inferred to be of type Double
The literal value of 3 has no explicit type in and of itself, and so an appropriate output type of Double is inferred from the presence of a floating-point literal as part of the addition.
Upvotes: 4