BT

Disseminando conhecimento e inovação em desenvolvimento de software corporativo.

Contribuir

Tópicos

Escolha a região

Início Notícias Swift 4.1 aprimora generics, otimização de compilador e gerenciador de pacotes

Swift 4.1 aprimora generics, otimização de compilador e gerenciador de pacotes

Favoritos

O Swift 4.1 está oficialmente disponível, trazendo novas funcionalidades para a linguagem, opções de construção e algumas melhorias para o Swift Package Manager e Foundation.

Como informado anteriormente pelo InfoQ, quando o Swift 4.1 tornou-se preliminarmente disponível no XCode 9.3 beta, a nova funcionalidade mais significante na linguagem é a conformidade condicional, que permite que um desenvolvedor especifique que um tipo genérico está em conformidade com um protocolo apenas se seus parâmetros de tipo atenderem a determinados requisitos. Isso é importante principalmente em vista da possibilidade de definir tipos de adaptadores genéricos, ou seja, tipos genéricos que refletem os recursos dos tipos de composição, como um tipo de coleção que expõe uma parte da API de seu tipo de componente.

Outra poderosa extensão para os tipos genéricos no Swift 4.1 é a possibilidade de especificar restrições recursivas em tipos associados. Tipos associados no Swift são usados em especificações de protocolos como espaços reservados para um tipo que não é conhecido, e a definição do mesmo é fornecida quando o protocolo é adotado. Por exemplo, aqui temos um protocolo Container usando um tipo associado Item:

protocol Container {
    associatedtype Item
    mutating func append(_ item: Item)
    var count: Int { get }
    subscript(i: Int) -> Item { get }
}

Opcionalmente, o Item pode ser restringido para um tipo específico de protocolo:

protocol Container {
    associatedtype Item : Bar
    ...
}

Antes do Swift 4.1, o tipo ou restrição de protocolos para um tipo associado não poderia referir recursivamente para o protocolo em definição. O Swift 4.1 elimina essa restrição, permitindo assim o seguinte protocolo recursivo:

protocol Container {
    associatedtype Item : Container
    ...
}

Outras novas funcionalidades do Swift 4.1 que merecem ser mencionadas são:

O Swift 4.1 suporta um modo de otimização de código além do suporte já existente para otimização de velocidade. A nova opção de otimização funciona tanto em todo o módulo assim como em um simples arquivo, com o primeiro fornecendo os melhores resultados. De acordo com a Apple, isso pode reduzir o tamanho do código de 5% à 30% para alguns projetos.

Finalmente, o Swift 4.1 traz melhorias para o Package Manager (gerenciador de pacotes). Ou seja, agora resolve corretamente dependências em pacotes graphs que usam protocolos diferentes, como ssh e http. Além disso, agora é mais rápido lidar com dependências compartilhadas.

O Swift 4.1 está disponível no Xcode 9.3 no macOS, os binários oficiais estão disponíveis para o Ubuntu em https://swift.org/download/.

Avalie esse artigo

Relevância
Estilo/Redação

Conteúdo educacional

BT