Zhaoxin,
You are trying to cast to a type which is defined by a variable at runtime.
Casting with `as` is done at compile-time. The variable has no defined value at
this time.
The compiler cannot infer what the value of a variable is going to be.
It can only infer types by static analysis.
Regards
Johan
> Is that possible to do dynamic casting?
>
> My code:
>
>>
>> importFoundation
>>
>>
>>
>>
>>
>>
>>
>>
>> letarray = [1,2,3,4,5]
>>
>>
>>
>> letdictionary:[String:Any] = ["numbers":array]
>>
>>
>>
>>
>>
>>
>>
>>
>> ifletvalue =dictionary["numbers"] {
>>
>>
>>
>> lettype = type(of: value)
>>
>>
>>
>> print(type)// Array<Int>
>>
>>
>>
>> letnumbers = valueas!Array<Int>// [1, 2, 3, 4, 5]
>>
>>
>>
>> //let numbers2 = value as! type // error: use of undeclared type 'type'
>>
>>
>>
>> }
>>
>>
> As you can see, the dynamic casting leads an error. Is there a way to do
> this? Thanks.
>
>
>
>
>
>
> Zhaoxin
>
>
>
>
>
_______________________________________________
swift-users mailing list
[email protected]
https://lists.swift.org/mailman/listinfo/swift-users