Biblioteca Padrão Swift (iOS/macOS): visão geral completa
A Biblioteca Padrão Swift é a base sobre a qual todo o desenvolvimento para iOS, macOS, watchOS e tvOS é construído. Ela fornece ao desenvolvedor um conjunto de tipos de dados básicos, protocolos, estruturas e funções necessários para o trabalho diário. Ao contrário de frameworks de terceiros (por exemplo, UIKit ou SwiftUI), a biblioteca padrão faz parte da própria linguagem Swift e está disponível em qualquer projeto sem importações adicionais. Neste artigo, analisaremos detalhadamente os principais componentes da biblioteca.
Tipos de dados principais
A Biblioteca Padrão Swift inclui todos os tipos primitivos que você usa diariamente:
- Int, Float, Double — tipos numéricos com precisão variada.
- Bool — tipo booleano (true/false).
- String — trabalho com texto.
- Character — caractere Unicode individual.
Exemplo de trabalho com strings, demonstrando o poder dos métodos integrados:
import Foundation
let greeting = "Olá, Swift!"let uppercased = greeting.uppercased()let containsWord = greeting.contains("Swift")
print(uppercased) // "OLÁ, SWIFT!"print(containsWord) // true
// Strings multilinhalet multiline = """Esta é a primeira linha.Esta é a segunda linha."""print(multiline)Coleções: Array, Set, Dictionary
A biblioteca fornece três tipos principais de coleções, otimizadas para diferentes tarefas:
- Array — lista ordenada de elementos com acesso por índice.
- Set — coleção não ordenada de valores únicos.
- Dictionary — coleção de pares "chave-valor".
Exemplo de uso de todos os três tipos:
// Arrayvar numbers: [Int] = [1, 2, 3, 4, 5]numbers.append(6)numbers.sort(by: >)
// Setvar uniqueNames: Set<String> = ["Alice", "Bob", "Charlie"]uniqueNames.insert("Alice") // Não será adicionado, pois já existe
// Dictionaryvar capitals: [String: String] = [ "Rússia": "Moscou", "EUA": "Washington"]capitals["França"] = "Paris"
print(numbers) // [6, 5, 4, 3, 2, 1]print(uniqueNames) // ["Charlie", "Alice", "Bob"]print(capitals) // ["Rússia": "Moscou", "EUA": "Washington", "França": "Paris"]Tipos Opcionais (Optionals)
Uma das principais características do Swift é o trabalho seguro com valores ausentes através de Optional. Isso permite evitar muitos erros de tempo de execução comuns em outras linguagens.
Principais formas de trabalhar com opcionais:
- Optional Binding (
if let,guard let) - Force Unwrapping (apenas se tiver certeza da existência do valor)
- Nil-Coalescing Operator (
??) - Optional Chaining
var username: String? = "JoaoSilva"
// Optional bindingif let name = username { print("Olá, \\(name)!")} else { print("Nome não definido")}
// Nil-coalescinglet displayName = username ?? "Convidado"print(displayName)
// Optional chaininglet count = username?.count ?? 0print("Comprimento do nome: \\(count)")Protocolos e Extensões
A Biblioteca Padrão Swift é construída sobre protocolos. Os principais protocolos que você usará:
Equatable— para comparação de objetosHashable— para uso em Set e DictionaryComparable— para ordenaçãoCodable— para serialização/desserialização (JSON, Property List)Collection— protocolo base para todas as coleções
Exemplo de implementação de prot