any e all
Parte da seção Lógica e fluxo do Journey de GDScript da Coddy. Lição 63 de 78.
any() e all() fazem uma pergunta de sim ou não sobre um array inteiro. Ambos recebem uma função que retorna true ou false para um elemento:
any()retornatruese a função retornartruepara pelo menos um elemento.all()retornatruese a função retornartruepara todos os elementos.
var enemy_hp = [30, 0, 12]
print(enemy_hp.any(func(hp): return hp == 0))
print(enemy_hp.all(func(hp): return hp > 0))true
falseUm inimigo tem 0 de HP, então any() é true, e esse mesmo inimigo faz com que all() seja false.
Ambos param assim que a resposta é conhecida: any() no primeiro true, all() no primeiro false. Eles também funcionam com funções nomeadas, como numbers.all(is_even).
Em um array vazio, any() retorna false, porque nenhum elemento é aprovado, e all() retorna true, porque nenhum elemento falha.
Use-os em uma condição no lugar de um loop com uma variável de sinalização:
var inventory = ["sword", "key", "rope"]
if inventory.any(func(item): return item == "key"):
print("The door opens")Desafio
FácilO programa lê uma linha de notas separadas por vírgulas e as armazena no array numbers. Esta parte já está escrita.
Imprima duas linhas:
Any perfect:seguido detruese pelo menos uma nota for100; caso contrário,falseAll passed:seguido detruese todas as notas forem50ou mais; caso contrário,false
Use any() para a primeira linha e all() para a segunda. Para a entrada 100,75,40, a saída é:
Any perfect: true
All passed: falseExperimente você mesmo
extends Node
func _ready():
var numbers := []
for part in OS.read_string_from_stdin().split(","):
numbers.append(int(part))
# Imprima as duas linhas com any() e all()
Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.
Todas as lições de Lógica e fluxo
1Strings em Profundidade
Métodos de StringBusca em StringsSubstituir e Remover EspaçosDividir e UnirRecapitulação - Verificação de Nome de Usuário4Dicionários - Parte 2
Dicionários aninhadosArrays de dicionáriosMesclando dicionáriosCopiando dicionáriosRevisão - Contador de frequência10Funções Avançadas
Retornando Múltiplos ValoresFunções Lambda Parte 1Funções Lambda Parte 2Revisão - Ordenação com LambdaFunções Recursivas Parte 1Funções Recursivas Parte 2Revisão - Somando Array Aninhado13Sistema de Gerenciamento de Estoque
Visão Geral do ProjetoAdicionar Item2Tomada de Decisões Avançada
Correspondência com VariáveisGuards de CorrespondênciaPadrões de ArrayPadrões de DicionárioVerificações de PertinênciaRevisão - Analisador de Comandos5Aplicativo de Agenda de Contatos
Exibir menuAdicionar contato8Gerenciador de Registros de Alunos
Visão Geral do ProjetoAdicionar Aluno11Funções de Alta Ordem
O método mapO método filterO método reduceany e allRevisão - Validador de e-mailRevisão - Processador de números3Arrays multidimensionais
Fundamentos de arrays 2DAcessando elementos de arrays 2DLaços aninhados com arrays 2DRevisão - arrays 2DArrays irregularesPadrões comuns de arrays 2DRevisão - tabuleiro de jogo6Conjuntos com Dicionários
O que é um conjunto?Dicionário como conjuntoAdicionando e removendoUnião e interseçãoDiferença entre conjuntosRevisão - Removendo duplicatas9Agregação Avançada de Dados
Somando ValoresEncontrando o Mínimo e o MáximoOrdenação PersonalizadaRevisão - Ordenador de DicionáriosPratique por conta própria: Compilador de GDScript online