I'm playing around with Swift trying to make it look more "dynamically typed" – just for fun, no production value expected.
Now I'm stuck with overwriting behavior of converting builtin types to String.
For example, I'd like to see this output for Array:
let nums = [1, 2, 3]
print(nums) // "I'm an array"
So far I tried to
- make an extension to
NSArray(not compiles) - implement
CustomStringConvertible(not compiles) - make an extension to
Array(compiles, changes nothing)
Seems like I'm on the wrong path:
extension Array: CustomStringConvertible {
public var description: String { return "An array" }
}
gives the warning:
Conformance of 'Array' to protocol 'CustomStringConvertible' was already stated in the type's module 'Swift'
Is this doable in Swift?
CustomStringConvertiblefor anArraydoes not compiles with an error: Redundant conformance of 'Array<Element>' to protocol 'CustomStringConvertible'.