Minha formação em matemática é muito pobre (ou seja, a última aula relevante de matemática foi na trigonometria do ensino médio, dois anos atrás - outra história para outra época). Estou lendo 'Javascript: O Guia Definitivo' e é um termo que está sendo usado repetidamente e meio que o utilizei. Mas cheguei a um capítulo (Capítulo 6 - Objetos) em que minha falta de compreensão do termo e sua aplicação na programação / POO está começando a se tornar prejudicial ao processo de aprendizagem. Os dicionários on-line não estão ajudando, então alguém tem uma definição e / ou exemplo mais explicável para mostrar?
object-oriented
definition
gr33kbo1
fonte
fonte
Respostas:
Matematicamente, numerosos meios "podem ser colocados em uma correspondência individual com os números naturais". A maioria das representações em computação é enumerável porque são feitas de cadeias de bits, e cadeias de bits podem ser usadas para indicar números no sistema binário.
Algumas representações de dados não são consideradas enumeráveis, no entanto. Por exemplo, um número de ponto flutuante é feito de bits, mas trabalhamos com ele como uma aproximação a um número real. No nível binário, podemos "contar" através de números consecutivos de ponto flutuante, mas geralmente isso não é relevante em aplicativos numéricos.
Em algumas outras situações, a enumeração é possível, mas não há acordo sobre uma enumeração. Por exemplo, todos os objetos em sua imagem de tempo de execução constituem um conjunto finito e podem ser enumerados. O coletor de lixo faz isso quando percorre os objetos ativos. Mas o aplicativo não enumera o conjunto de todos os objetos dessa maneira sem considerar os limites de tipo ou módulo; enumera objetos menores que são do mesmo tipo ou relacionados.
Normalmente, quando uma enumeração existe formalmente, há acordo de todas as partes. Aqui está um conjunto de valores. Este é o primeiro. Esse é o seu sucessor, e assim por diante.
Em algumas linguagens de programação, existem tipos enumerados: alguma maneira disciplinada de definir constantes simbólicas nomeadas que são mapeadas pelo compilador para valores inteiros exclusivos. Se esses tipos forem fortemente digitados, essas constantes poderão ser armazenadas apenas em variáveis do tipo correspondente, chamadas de tipo enumerado . Por exemplo, uma enumeração definida pelo utilizador do tipo
month
só pode assumir os valoresjanuary
através dedecember
. Eles são reduzidos aos valores de 0 a 11 e podem permitir aritmética, como asuccessor(january)
produçãofebruary
, ou a possibilidade de usar a enumeração como um índice de matriz: definindo uma matriz emdays[january..december]
quedays[january]
, digamos, 31. A finalidade de um tipo enumerado, portanto, deve servir como um subconjunto dos números naturais, por outros nomes que são distintos e fornecem clareza de significado (nomes são usados em vez de constantes numéricas) e verificação de tipo: a corred
de umacolor
enumeração não pode ser atribuída a umamonth
enumeração de tipo .O verbo enumerartambém é usado para denotar o conceito de consultar uma API para recuperar uma lista de objetos, geralmente em etapas: enumerar as interfaces de rede, enumerar os arquivos em um diretório e assim por diante. Sempre que um objeto está em uma correspondência 1: N com outros objetos, ele é suscetível de suportar uma API de enumeração que nos permite percorrer esses objetos irmãos ou recuperá-los como uma lista. A terminologia é um pouco obscura; por exemplo, em alguns casos, mesmo que os elementos não estejam em uma ordem específica, mas todos possam ser visitados sem repetição, ainda é uma enumeração. Algumas estruturas de dados de conjuntos dinâmicos, como tabelas de hash, não fornecem uma ordem específica e podem se reorganizar à medida que aumentam e diminuem, de modo que a ordem real varia quando inserções e exclusões são executadas.
A
pode vir antesB
, mas quando inserimosC
, agoraB
acontece antesA
porque ocorreu uma reorganização interna.fonte
Acabei de pegar minha cópia do JavaScript: The Definitive Guide , passei para o capítulo 6 e li rapidamente a seção 6.5 Enumerando propriedades . Agora, devo acrescentar que também não sou uma pessoa de matemática particularmente forte, por isso espero que isso faça sentido:
Especificamente, "enumerável" significa que existe algum tipo de esquema de pedido, para que você possa abordar rápida e facilmente os itens desse conjunto / sequência / coleção (ou, nessa seção do JavaScript: O Guia Definitivo , o objeto) .
Para aplicá-lo ao que você está lendo no livro, quando o autor diz que as propriedades com as quais você estende uma classe são enumeráveis , ele está apenas dizendo que qualquer propriedade que você adicionar a um objeto (não aquelas que são herdadas) pode ser iterada sobre. Portanto, se você criar um objeto
obj
assim:... quando você itera sobre ele com o seguinte loop (estou usando nomes descritivos de variáveis aqui):
... você verá três itens registrados no seu console JS:
Este está lhe dizendo que as propriedades no objeto
obj
, são enumerados pelas teclasa
,b
, ec
.fonte
a, b, c
existem propriedades enumeráveis? E, alternativamente, uma propriedade inumerável é uma propriedade que não é enumerada por chaves?for-in
loop.Um enumerável é um objeto que pode ser enumerado. "Enumerado" significa contar os membros de um conjunto / coleção / categoria, um por um (geralmente em ordem, geralmente por nome).
Um enumerável é um objeto que pode percorrer uma série de outros objetos, um por um.
fonte