Biblioteca Padrão Swift (iOS/macOS): visão geral completa
A Biblioteca Padrão Swift é um conjunto fundamental de tipos, protocolos e funções sobre o qual se constrói todo o desenvolvimento para iOS, macOS, watchOS e tvOS. Ao contrário de muitas linguagens onde a biblioteca padrão é minimalista, o Swift oferece um rico conjunto de ferramentas "prontas para uso". Neste artigo, analisaremos detalhadamente os componentes-chave da biblioteca usados no desenvolvimento diário.
Tipos de dados e protocolos principais
A base da biblioteca é composta por tipos primitivos e protocolos que garantem uniformidade no trabalho com dados.
- Protocolos de igualdade e comparação:
Equatable,Comparable,Hashable— permitem comparar e criar hash de objetos. - Protocolos de representação:
CustomStringConvertible,CustomDebugStringConvertible— para descrição textual de objetos. - Tipos básicos:
Int,Double,Bool,String,Character— redefinidos para máxima performance.
// Exemplo de uso de protocolosstruct Person: Equatable, CustomStringConvertible { let name: String let age: Int var description: String { return "\\(name), \\(age) anos" }}
let alice = Person(name: "Alice", age: 30)let bob = Person(name: "Bob", age: 25)print(alice == bob) // falseprint(alice) // "Alice, 30 anos"Coleções: arrays, dicionários e conjuntos
O Swift fornece três tipos principais de coleções, otimizados para diferentes cenários de uso.
Arrays (Array)
Coleções ordenadas com acesso aleatório. Suportam expansão e redução dinâmicas.
var numbers: [Int] = [1, 2, 3, 4, 5]numbers.append(6)numbers.remove(at: 0)let filtered = numbers.filter { $0 > 3 }print(filtered) // [4, 5, 6]Dicionários (Dictionary)
Coleções não ordenadas do tipo "chave-valor". As chaves devem ser Hashable.
var capitals: [String: String] = [ "Rússia": "Moscou", "França": "Paris", "Japão": "Tóquio"]capitals["Alemanha"] = "Berlim"if let russiaCapital = capitals["Rússia"] { print("Capital da Rússia - \\(russiaCapital)")}Conjuntos (Set)
Coleções não ordenadas de elementos únicos. Ideais para verificação de pertinência e operações matemáticas.
let setA: Set = [1, 2, 3, 4]let setB: Set = [3, 4, 5, 6]let intersection = setA.intersection(setB)let union = setA.union(setB)print(intersection) // [3, 4]print(union) // [1, 2, 3, 4, 5, 6]Trabalho com strings
Strings em Swift são coleções de caracteres Unicode, o que torna o trabalho com internacionalização extremamente simples.
- Índices de strings:
startIndex,endIndex,index(_:offsetBy:)— navegação segura por caracteres. - Interpolação:
"\\(variável)"— inserção de valores em strings. - Literais multilinha:
""" """— formatação conveniente.
let greeting = "Olá, mundo!"let firstChar = greeting[greeting.startIndex] // "O"let index = greeting.index(greeting.startIndex, offsetBy: 7)let substring = greeting[index...] // "mundo!"
// Interpolação e multilinhalet name = "Swift"let description = """A linguagem \\(name) é usada para desenvolvimentopara iOS e macOS."""print(description)Tipos opcionais e trabalho com nil
O Swift oferece trabalho seguro com valores ausentes através de tipos opcionais. Esta é uma das principais características da linguagem.
var optionalName: String? = "Alexei"// Optional Também na biblioteca
Tokens JWT em JavaScript (Node.js): Guia Completo
Trabalhando com Excel em TypeScript: bibliotecas, exemplos e ferramentas
Swagger/OpenAPI para C# (.NET): Geração e documentação de API
Envio de SMS em C# (.NET): Integração com API de Serviços SMS via HttpClient