Go Equivalent for Python's List Comprehension
A compreensão de lista do Python oferece uma maneira concisa de gerar listas filtrando e transformando elementos. No entanto, se você estiver migrando para Go e achar um desafio replicar essa funcionalidade, aqui está uma solução:
Solução elegante usando pacote de filtro
Felizmente, a comunidade Go forneceu o pacote filter, que oferece funcionalidade semelhante à compreensão de lista do Python. Especificamente, sua função Choose usa uma fatia e uma função de filtragem, retornando uma nova fatia contendo apenas os elementos que passam no filtro.
import "github.com/rogpeppe/go-internal/filter" func Choose(slice []T, fn func(T) bool) []T
Exemplo:
// Get even numbers from a list a := []int{1, 2, 3, 4, 5, 6, 7, 8, 9} expect := []int{2, 4, 6, 8} result := filter.Choose(a, isEven)
Abordagem alternativa: For Loops
Embora o pacote de filtros ofereça conveniência, é importante observar que o uso de loops for tradicionais ainda é uma opção viável e eficiente. Os loops for do Go oferecem flexibilidade e oportunidades de otimização.
for i := range a { if someCondition { result = append(result, a[i]) } }
Conclusão
Apesar da falta de sintaxe de compreensão de lista nativa em Go, o pacote de filtros e os loops for oferecem soluções robustas para filtrar e transformar listas. Embora o pacote de filtros forneça uma sintaxe concisa, os loops for continuam sendo uma alternativa eficiente e de alto desempenho. Em última análise, a escolha da abordagem dependerá dos requisitos específicos da sua aplicação.
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3