0Pricing
Swift Academy · Aula

Subscripts para indexação personalizada

Defina subscripts personalizados para ler e escrever elementos com sintaxe semelhante à de arrays, adicione acessores seguros, aceite indexação com vários parâmetros e até subscripts de tipo (static).

Subscripts para indexação personalizada é uma aula grátis de Swift Academy no CoddyKit. Esta é a aula 4 de 4. 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 4 aulas no total.

Visão geral

Use subscritos para acessar dados com a sintaxe de colchetes. Você pode torná-los somente para leitura ou de leitura e escrita e até aceitar vários índices.

Subscrito de leitura e escrita

Crie um subscrito de obtenção/definição para expor o armazenamento interno com uma sintaxe semelhante à de um vetor.

struct Box {
    private var items: [String] = []
    init(_ values: [String]) { self.items = values }

    subscript(index: Int) -> String {
        get { items[index] }           // may trap if out of bounds (like Array)
        set { items[index] = newValue }
    }
}
var b = Box(["a","b","c"])
print(b[1])     // "b"
b[1] = "B"
print(b[1])     // "B"

Subscrito seguro

Retorne um valor opcional para evitar falhas com índices inválidos: um subscrito seguro e fácil de usar.

extension Array {
    subscript(safe i: Int) -> Element? {
        return indices.contains(i) ? self[i] : nil
    }
}
let arr = [10,20]
print(arr[safe: 1] ?? -1)  // 20
print(arr[safe: 5] ?? -1)  // -1

Vários parâmetros

Os subscritos podem receber vários parâmetros — algo excelente para matrizes ou acesso por coordenadas.

struct Matrix {
    let rows: Int, cols: Int
    private var grid: [Int]
    init(rows: Int, cols: Int, fill: Int = 0) {
        self.rows = rows; self.cols = cols
        self.grid = Array(repeating: fill, count: rows*cols)
    }
    private func index(_ r: Int, _ c: Int) -> Int { r*cols + c }

    subscript(r: Int, c: Int) -> Int {
        get { grid[index(r,c)] }
        set { grid[index(r,c)] = newValue }
    }
}
var m = Matrix(rows: 2, cols: 3)
m[0, 2] = 7
print(m[0, 2])

Subscrito de tipo

Adicione um subscrito de tipo (com estático) para indexar o próprio tipo, e não uma instância.

struct Roman {
    static let map: [Int:String] = [1:"I", 5:"V", 10:"X"]
    static subscript(_ n: Int) -> String? {
        return map[n]
    }
}
print(Roman[5] ?? "?")   // "V"

Dicas

Dicas:

  • Prefira retornar valores opcionais para obter acesso seguro.
  • Mantenha os subscritos simples; a lógica pesada pertence aos métodos.
  • Dê nomes claros aos parâmetros (por exemplo, [row:col:]).

Significado dos subscritos

Verificação rápida: o que os subscritos permitem fazer?

Recapitulação

Recapitulação: crie subscritos de leitura e escrita, adicione acessadores opcionais seguros, ofereça indexação com vários parâmetros e defina até subscritos de tipo.

Perguntas Frequentes

A aula “Subscripts para indexação personalizada” é grátis?

Sim — o texto completo de “Subscripts para indexação personalizada” é 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 4 aulas no total.

O que vou aprender em “Subscripts para indexação personalizada”?

Defina subscripts personalizados para ler e escrever elementos com sintaxe semelhante à de arrays, adicione acessores seguros, aceite indexação com vários parâmetros e até subscripts de tipo (static). 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 4 de 4.

Quanto tempo leva a aula “Subscripts para indexação personalizada”?

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. Propriedades e subscripts
  2. lazy e observadores de propriedades
  3. Propriedades computadas com get/set
  4. Subscripts para indexação personalizada
← Voltar para Swift Academy