BT

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

| por Sergio De Simone Seguir 12 Seguidores , traduzido por Diogo Carleto Seguir 31 Seguidores em 09 mai 2018. Tempo estimado de leitura: 2 minutos |

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

Olá visitante

Você precisa cadastrar-se no InfoQ Brasil ou para enviar comentários. Há muitas vantagens em se cadastrar.

Obtenha o máximo da experiência do InfoQ Brasil.

Dê sua opinião

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber mensagens dessa discussão
Comentários da comunidade

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber mensagens dessa discussão

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber mensagens dessa discussão

Dê sua opinião

Faça seu login para melhorar sua experiência com o InfoQ e ter acesso a funcionalidades exclusivas


Esqueci minha senha

Follow

Siga seus tópicos e editores favoritos

Acompanhe e seja notificados sobre as mais importantes novidades do mundo do desenvolvimento de software.

Like

Mais interação, mais personalização

Crie seu próprio feed de novidades escolhendo os tópicos e pessoas que você gostaria de acompanhar.

Notifications

Fique por dentro das novidades!

Configure as notificações e acompanhe as novidades relacionada a tópicos, conteúdos e pessoas de seu interesse

BT