[swift-users] Optional chaining and String properties
Stephen Schaub
sschaub at gmail.com
Mon Aug 1 12:26:35 CDT 2016
With optional chaining, if I have a Swift variable
var s: String?
s might contain nil, or a String wrapped in an Optional. So, I tried this
to get its length:
let count = s?.characters?.count ?? 0
However, the compiler wants this:
let count = s?.characters.count ?? 0
or this:
let count = (s?.characters)?.count ?? 0
My understanding of optional chaining is that, once you start using '?.' in
a dotted expression, the rest of the properties evaluate as optional and
are typically accessed by '?.', not '.'.
So, I dug a little further and tried this in the playground:
var s: String? = "Foo"
print(s?.characters)
The result indicates that s?.characters is indeed an Optional instance,
indicating that s?.characters.count should be illegal.
Why is s?.characters.count a legal expression?
--
Stephen Schaub
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-users/attachments/20160801/8e778948/attachment.html>
More information about the swift-users
mailing list