¿Cuál es la diferencia entre Tuple y TypeTuple? Miré código de muestra en la biblioteca, pero se ven similares. ¿Cómo decido cuál usar? y hay una buena razón por la cual Tuple está en std.typecons pero TypeTuple está en std.typetuple?Tuple vs TypeTuple en D
Respuesta
un Tuple
es un tipo de datos, que consiste en una colección de campos que especifique.
Un TypeTuple
es simplemente "un montón de cosas" que el compilador sabe acerca en tiempo de compilación; no tiene existencia en tiempo de ejecución.
(Contrariamente a su nombre, una TypeTuple
se mantienen prácticamente nada - no sólo los tipos)
Siento tu respuesta y Michal's debería combinarse en una sola. – Arlen
tupla std.typecons tupla de valores normal normal.
typetuple en std.typetuple es una tupla de tipos. Se puede usar en tiempo de compilación como en esta función de ejemplo, donde limita los tipos permitidos para funciton a int, long y double only.
void foo (T) (T arg) {
static assert staticIndexOf!(T,TypeTuple!(int, long, double)) != -1,
T.stringof ~" is not allowed as argument for foo");
}
tupla es una colección de variables (como un struct) mientras TypeTuple es una colección de tipo que se puede utilizar en los controles de plantilla
Tuple!(int,"index",real,"value") var;
define una variable con var.index un int y var .value un verdadero
un TypeTuple se utiliza cuando se desea examinar si las instancias de las plantillas utilizan los tipos correctos
- 1. Parámetros de plantilla Struct y Tuple en D
- 2. tuple vs list objects en python
- 3. enumeración vs inmutable en D
- 4. const vs enum en D
- 5. desempaquetado de Tuple: variable ficticia vs índice
- 6. rendimiento D: Unión vs @property
- 7. Tuple en la cadena
- 8. ¿Tuple múltiple a dos pares en Python?
- 9. ¿Qué es "-d" en "npm -d install"?
- 10. En java -D ¿qué significa la D?
- 11. Boost tuple performance
- 12. Scala Tuple Deconstruction
- 13. scala tuple desempaquetado
- 14. F #. Tuple o no
- 15. Cálculo relacional de Tuple
- 16. Uso de boost :: tuple en tr1 :: hash
- 17. ¿Cómo pasar tuple como argumento en Python?
- 18. Insertar un elemento en un Tuple
- 19. Erlang: Lista de Tuple en JSON
- 20. Inferencia de tipo Scala Tuple en Java
- 21. ¿Cómo se implementa std :: tuple?
- 22. Cómo consultar un constexpr std :: tuple en tiempo de compilación?
- 23. SQLAlchemy devuelve tuple no diccionario
- 24. Return Tuple from EF select
- 25. Implementación de Java N-Tuple
- 26. std :: tuple y diseño estándar
- 27. Plantilla en programación D
- 28. Cuándo eliminar en D?
- 29. salida equivalente en D?
- 30. Y-combinator en D?
Tenga en cuenta que estos son soluciones basadas en la biblioteca para propósitos especiales. Se basan en el concepto de tupla incorporada de D's: http://www.digitalmars.com/d/2.0/tuple.html – Trass3r
@ Trass3r, entonces usted dice que hay 3 tipos de tuplas en D? – Arlen
No, acabo de comentar que el * idioma * solo tiene una noción de tuplas. Tuple y TypeTuple que mencionaste están basados en bibliotecas. Por cierto, las tuplas originales se pueden "crear" con 'plantilla DTuple (T ...) {alias T DTuple;}' – Trass3r