O que significa a palavra-chave `open` em Swift e como ela difere de `public`?
Olá a todos! Comecei a estudar Swift recentemente e fiquei confuso com os modificadores de acesso. Na documentação, li sobre `public`, `internal`, `fileprivate` e `private`, mas depois me deparei com `open`. \n\nEu entendo que `public` torna uma classe ou método acessível a partir de outro módulo. Mas para que serve `open`? `public` não faz a mesma coisa? \n\nAqui está um exemplo: criei meu próprio framework e quero que os usuários possam não apenas usar minha classe, mas também herdar dela. Se eu usar `public`, a classe ficará visível, mas o compilador não permitirá herdar dela. Se eu usar `open` — a herança é permitida. Por que isso?\n\nOutra coisa que me confunde é que `open` só pode ser aplicado a classes e membros de classe. Para structs e protocols, pelo que entendi, `open` não é usado. Isso é verdade?
No answers yet.
Faça login para deixar uma resposta