0Pricing
Swift Academy · Aula

Controle de acesso (public/internal/fileprivate/private)

Controle a visibilidade das APIs entre arquivos e módulos usando public, internal (padrão), fileprivate e private. Aprenda quando expor e quando ocultar.

Controle de acesso (public/internal/fileprivate/private) é uma aula grátis de Swift Academy no CoddyKit. Esta é a aula 3 de 3. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Swift Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Swift Academy inclui 3 aulas no total.

Visão geral dos níveis de acesso

Níveis de acesso do Swift:

  • público: visível para outros módulos
  • interno (padrão): visível no mesmo módulo
  • privado no arquivo: somente neste arquivo de origem
  • privado: escopo delimitador (tipo/extensão)

interno (padrão)

Omitir um modificador torna as declarações internas, utilizáveis em qualquer lugar dentro do mesmo módulo (pacote ou destino do aplicativo).

struct Greeter {            // internal by default
    func hello(_ name: String) -> String { "Hello, \\(name)" }
}
let g = Greeter()
print(g.hello("Ada"))

Superfície da API pública

Marque as APIs como públicas para expô-las a outros módulos; mantenha os auxiliares internos para manter a superfície pequena.

public struct Math {
    public static func add(_ a: Int, _ b: Int) -> Int { a + b }
    // internal helper remains hidden outside the module
    static func double(_ x: Int) -> Int { x * 2 }
}
print(Math.add(1,2))

Escopo privado no arquivo

Privado no arquivo restringe o uso ao mesmo arquivo de origem. É ótimo para separar auxiliares de um tipo dentro de um único arquivo.

// In FileA.swift
fileprivate func hiddenInFile() { print("Only in this file") }

struct A {
    func call() { hiddenInFile() } // OK: same file
}
A().call()

Escopo privado

Privado limita o acesso ao escopo delimitador (tipo/extensão). Use-o para proteger invariantes de forma rigorosa.

struct Box {
    private var value = 0     // visible only inside Box declaration
    mutating func set(_ v: Int) { value = v } // controlled write
    func get() -> Int { value }                // controlled read
}
var b = Box()
b.set(7)
print(b.get())
// b.value = 3   // error: 'value' is private

Dicas de projeto

Dicas de projeto:

  • Use interno por padrão e exponha como público apenas o que os consumidores precisam.
  • Prefira privado/privado no arquivo para os auxiliares, mantendo as APIs pequenas.
  • O nível de acesso de um membro não pode ser mais amplo que o de seu tipo.

Acesso padrão

Verificação rápida: qual é o nível de acesso padrão?

Recapitulação

Recapitulação: use público para expor módulos, mantenha a maioria das coisas internas e oculte detalhes com privado no arquivo/privado para proteger invariantes.

Perguntas Frequentes

A aula “Controle de acesso (public/internal/fileprivate/private)” é grátis?

Sim — o texto completo de “Controle de acesso (public/internal/fileprivate/private)” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Swift Academy, atualize para CoddyKit PRO. O curso de Swift Academy inclui 3 aulas no total.

O que vou aprender em “Controle de acesso (public/internal/fileprivate/private)”?

Controle a visibilidade das APIs entre arquivos e módulos usando public, internal (padrão), fileprivate e private. Aprenda quando expor e quando ocultar. Você pratica Swift Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar Swift Academy?

Nenhuma experiência prévia é necessária. Swift Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 3 de 3.

Quanto tempo leva a aula “Controle de acesso (public/internal/fileprivate/private)”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de Swift Academy?

Sim. Cada aula de Swift Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Inicializador memberwise e métodos mutating
  2. Herança, substituição e final
  3. Controle de acesso (public/internal/fileprivate/private)
← Voltar para Swift Academy