Encadeamento opcional com cordas Swift
Com encadeamento opcional, se eu tiver uma variável Swift
var s: String?
s pode conter nulo ou uma String envolvida em um Opcional. Então, eu tentei isso para obter o seu comprimento:
let count = s?.characters?.count ?? 0
No entanto, o compilador deseja o seguinte:
let count = s?.characters.count ?? 0
Meu entendimento do encadeamento opcional é que, assim que você começar a usar?.
em uma expressão pontilhada, as demais propriedades são opcionais e geralmente são acessadas por?.
, não.
.
Então, eu cavei um pouco mais e tentei isso no playground:
var s: String? = "Foo"
print(s?.characters)
// Output: Optional(Swift.String.CharacterView(_core: Swift._StringCore(_baseAddress: 0x00000001145e893f, _countAndFlags: 3, _owner: nil)))
O resultado indica ques?.characters
é realmente uma instância opcional, indicando ques?.characters.count
deve ser ilegal.
Alguém pode me ajudar a entender esse estado de coisas?