> Except it does, because if I write
> 
>       let a = 2

> a is of type Int (at least, according to Xcode's code completion).

and if you write

        let b = 2 + 0.5

2 is treated as a double. The type of the literal “2” varies with context. Do 
you also find that inconsistent and confusing? 

> But this gives inconsistent results:
> 
>       let t = true
> 
>       let a = Int(true)
>       let b = Int(t)          //  Error
> 
> I find this to be very inconsistent and confusing.

t is a Bool and there is no automatic conversion from Bool to Int.

true is not a Bool.  It may be treated as a Bool depending upon context.  In 
the line `let t = true` it is treated as a Bool. In `let a = Int(true)` it is 
treated as an NSNumber (assuming you import foundation).

Marc
_______________________________________________
swift-users mailing list
swift-users@swift.org
https://lists.swift.org/mailman/listinfo/swift-users

Reply via email to