Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

stdEnumerator

Abierto
#25 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 1 día

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
5/5
Tiempo estimado
Más de una semana
Aptitud para principiantes
20/100
Tipo de issue
Nueva funcionalidad
Claridad
Necesita aclaración
Estado de actividad
Estancado
Stack tecnológico
visualbasic
Área
tooling

Línea de trabajo

The issue is a broad checklist for stdEnumerator, but it names no files, tests, or entry points. Start by locating the stdEnumerator implementation and reviewing the completed methods; the remaining unchecked behaviors, dependencies, and completion criteria would need to be narrowed before work can begin.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

enhancement lib-stdEnumerator megathread

GENERAL FEATURES

  • Collection/Dictionary Key preservation
  • Better IEnumVARIANT handling

CONSTRUCTORS

  • CreateFromIEnumVariant #54
  • CreateFromICallable #26
  • CreateFromArray #26
  • CreateFromDictionary
  • CreateEmpty
  • Create(obj, iFromType=IEnumVariant)
  • init #PROTECTED

INSTANCE PROPERTIES

  • Get/Let/Set item
  • Get length

INSTANCE METHODS

Many methods were inspired by those in Ruby's Enumerable: https://ruby-doc.org/core-2.7.2/Enumerable.html

  • asCollection()
  • asArray(iType as vbVarType)
  • asDictionary()
  • Sort()
  • Reverse()
  • ForEach
  • Map
  • Unique
  • Filter
  • Concat
  • Join
  • indexOf
  • lastIndexOf
  • includes
  • reduce
  • countBy
  • groupBy
  • max(cb)
  • min(cb)
  • sum(cb)
  • Flatten
  • cycle
  • findFirst
  • checkAll
  • checkAny
  • checkNone
  • checkOnlyOne
  • forEachConsecutive
    • [1,2,3,4,5].each_cons(2,cb) ==> [[1,2],[2,3],[3,4],[4,5]]
  • forEachSlice
    • [1,2,3,4,5].each_slice(2,cb) ==> [[1,2],[3,4],[5]]
  • partition
    • [1,2,3,4,5,6].partition(a=>a%2=0) ==> [[2,4,6],[1,3,5]]
  • zip
    • [1,2,3].zip([4,5,6]) ==> [[1,4],[2,5],[3,6]]
    • [1,2,3].zip([1,2]) ==> [[1,1],[2,2],[3,null]]
  • forEachFixedLengthCombination
    • [1,2,3,4,5].eachFixedLengthCombination(cb, 3) ==> [[1,2,3],[1,2,4],[1,2,5], ... [3,4,5]]

WHAT WE WON'T DO:

  • with_index - this can't be easily done, so instead implement methods like `forEach(cb,withIndex?=false)
  • with_object - this can be done with cb.Bind()

Things we can't do (yet)

  • take <-- can't do this unless we implement IEnumVARIANT and call Next() method
  • tally <-- Would like to do this but can't until we have stdDictionary ["a","b","c","b","a","b"].tally ==> {a:2, b:3, c:1}
  • to_dict <-- requires stdDictioanry ["a",1,"b",2].to_dict ==> {a:1, b:2}
  • groupBy <-- requires stdDictionary - this has been implemented currently using Scripting.Dictionary
Lenguaje dominante
VBA
Estrellas
412
Forks
70
Merge medio
20 h 38 min
PR fusionados (30 d)
18

Preparar el entorno

Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de sancarn/stdVBA

Todos los issues de sancarn/stdVBA

Issues similares

Más issues de DevTools

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.