2009-08-05 11 views
9

Una nueva pregunta/+: ...
En la programación, nos encontramos con la palabra Tipo con la frecuencia suficiente.

¿Qué debería significar transmitir y cuándo no debería usarse?¿Qué es un tipo?

+16

http://en.wikipedia.org/wiki/Data_type –

+1

Creo que el enlace de Divo le dirá todo lo que necesita saber para comenzar, y debería ser la respuesta en sí. – Xetius

+3

Debería comenzar a hacer preguntas como esta, ¿alguien tiene una lista de lo que no se ha preguntado todavía? – IAdapter

Respuesta

7

Hay muchas maneras de responder esta pregunta, y cada forma es aplicable a algunos modelos, pero no a otros. Mi definición general favorita es que un tipo es un subconjunto de todos los valores del mundo (por ejemplo, el tipo "enteros positivos" incluye el valor 1 pero no el valor "Desbordamiento de pila"). Los tipos pueden superponerse obviamente (1 podría ser un entero o un entero positivo). Esta definición brinda un buen sentido intuitivo de los tipos "más grande" (más inclusivo) y "más pequeño", lo que ayuda a comprender la covarianza y la contravarianza.

9

Siempre aprendí como "Un tipo define cómo se almacenan los datos en la memoria y las acciones que se pueden realizar en él".

Si piensas en una clase con variables y métodos locales, esto tiene sentido.

+0

Esa es probablemente la manera más concisa de describir un tipo que he visto en mucho tiempo.+1 – Randolpho

+3

Correctamente, un tipo es un conjunto de valores y operaciones. En segundo lugar, hay una representación en la memoria, y tal vez en los sistemas de archivos. –

+1

No puede definir un valor para un tipo sin especificar cómo se almacena en la memoria. La endianidad del sistema entra en juego con eso también. – Randolpho

1

Tipos de datos. p.ej. int, bool, float, char, string (los nombres serán diferentes entre diferentes idiomas).

Tipo es la abreviatura de Tipo de datos. Estos se pueden dividir en 2 categorías básicas: nativo y definido por el usuario. Un tipo de datos describe qué tipo de datos se pueden mantener en una variable y las operaciones que puede realizar en esos datos.

los tipos de datos nativos ya están definidos en el idioma. A menudo estos incluyen entero, flotante, booleano, personaje, cadena o algo similar. Los diferentes idiomas tendrán diferentes conjuntos de tipos de datos nativos. Algunos idiomas no tienen un booleano, por ejemplo. Otros idiomas no tienen un tipo de cadena nativo.

tipos de datos personalizados son los que usted define. Puede definir un tipo de datos para almacenar cualquier clase de información y operadores que actúen sobre esos valores. Estos pueden ser considerados clases o estructuras.

1

En términos de tipos de datos, es el formato en el que los datos se almacenan en la memoria y transmite las operaciones que se pueden realizar en y con los datos.

Por ejemplo, un "entero sin signo" es un tipo de datos que solo puede almacenar números reales enteros positivos (es decir, 0, 1, 2, 3 ...), generalmente hasta un número específico debido al hecho de que la memoria asignada al entero sin signo es limitada.

1

@divo dijo que bastante bien, pero voy a tratar de resumir:

Un tipo es un conjunto de datos (que incluso puede hacerse compone de otros tipos) que se ha dado semántica sentido. Eso es importante: un tipo es una definición de significado semántico. Este tipo es diferente de ese tipo porque digo tan. El significado semántico del tipo define cómo puede usarlo, qué operaciones puede realizar contra él, ese tipo de cosas.

En su forma más baja, un tipo es solo una codificación contra una agrupación de bits. Por ejemplo, un número entero (int en muchos idiomas) es (típicamente en estos días) 32 bits de datos, codificados en el formulario twos-compliment. float s son 32 o 64 bits codificados en IEEE floating point arithmetic standard. char s son 8 o 16 (más frecuentemente 16) bits codificados en ASCII o UTF8/UTF16. Una cadena es una matriz de caracteres. Etcétera.

Un tipo complejo (que es lo que la mayoría de las personas piensa cuando ven/escuchan la palabra "tipo") está formado por uno o más tipos. En la mayoría de los idiomas, un tipo se puede definir como un alias de otro tipo o como una estructura de datos o clase.

3

Informalmente, un tipo se utiliza para nombrar una categoría de objetos con características similares, como con "Silla" para un tipo de mobiliario. Una silla es típicamente para sentarse, y también tiene un espacio horizontal plano. Las sillas a menudo tienen cuatro patas, pero no siempre. Una silla tiene un cierto color o conjunto de colores. etc.

Entonces, si le digo que tengo una Silla, usted sabe mucho sobre el objeto al que me refiero.

Llevando la analogía un paso más allá, las sillas tienen funcionalidad (se puede sentar en una silla) y propiedades (número de patas, color). Además, las configuraciones comunes de las propiedades de la silla también se pueden nombrar, un subtipo (o subclase), p. Ej. un taburete es una silla de tres patas sin respaldo.

Los tipos son una abreviatura para describir objetos de computadora de modo que no es necesario especificar todas las propiedades y acciones (métodos) para cada objeto individual. Al declarar que un cierto objeto tiene un cierto tipo, los programadores (y la computadora) asumen que es común en función del Tipo, lo que hace que el proceso de programación sea más barato/mejor/más rápido.

+0

Para mí, "tipo" implica valores primitivos, mientras que "clase" implica objetos. Tu descripción me parece mucho a esta última. Quizás estoy fuera de la base aquí? – Imagist

+1

@Imagist: sí, estás fuera de la base. Tipo significa valores "primitivos" y "objetos". Ellos son sinónimos – Randolpho

5

Los datos no son más que una colección de bits. Un tipo te dice qué representan esos bits como int, char, boolean.

+0

Las cadenas de bits son solo una de las muchas posibles representaciones de datos. – Apocalisp

+1

y los otros serían? – lune

+0

Las diferentes formas de codificar datos están limitadas solo por su imaginación. Algunas computadoras representan datos como pares de aminoácidos. El punto es que las cadenas de bits son una codificación, pero los datos no son la codificación. – Apocalisp

0

Desde la perspectiva de un programador principiante, puede pensar en el propósito de un tipo como limitar qué información puede almacenarse en una variable en particular. Por ejemplo, (ignorando los entornos impares), en C:

  • un char es un valor de 8 bits que puede representar un número que va de -128 a 127.
  • un unsigned short es un valor de 16 bits que puede representar un número que va desde 0 a 65535

Vale la pena señalar que no todos los idiomas manejan la escritura de la misma manera. Un lenguaje que limita estrictamente qué valores se pueden almacenar en variables basadas en tipos se considera fuertemente tipado. Un ejemplo de un lenguaje que no está fuertemente tipado es Perl: si define, Perl hará magia y tratará este valor como una cadena o un número en función del contexto.

+0

Eso no es del todo exacto. * Todos los idiomas se preocupan por el tipeo, pero algunos especifican y codifican los tipos dinámicamente en el tiempo de ejecución, en lugar de estarlo de forma estática en tiempo de compilación. – Randolpho

+0

Supongo que lo redacté mal. Revisado para ser un poco más claro. – atk

0

Un tipo es el nombre dado a la "descripción" de una clase u objeto (instancia de una clase).

En .NET, el tipo te dice información como el nombre de la clase, campos, propiedades, métodos, dónde está, etc. También puede conducir a información como qué ensamblado (DLL) se encuentra y el directorio en el que se encuentra en.

El tipo es muy importante ya que el compilador sabe qué se puede y qué no se puede hacer con un objeto en tiempo de compilación. Esto facilita el desarrollo de manera significativa, asegura que los problemas se planteen antes y es menos probable que los desarrolladores hagan las cosas incorrectas con los objetos equivocados.

Algunos ejemplos de los llamados tipos incorporados son "int, double, string, float, byte y short".

1

Un "Tipo" está destinado a transmitir el sabor de un objeto; sus límites y los valores predeterminados esperados.

Un int Tipo significa que es un número y en muchos idiomas está predeterminado por defecto. Un cadena Tipo, por el contrario, es un conjunto de caracteres que pueden parecerse a un int pero no tiene que hacerlo; el valor predeterminado es una cadena vacía o un valor nulo según el idioma.

Tipo

"tipo" es también, a menudo, se utiliza para referirse a un objeto o clase personalizada, no sólo int, bool , cadena, etc. ¿Hay un caso en que no se debe utilizar" "¿?"

0

Un tipo es un tipo, según la vista de pitón del mundo. En otras palabras, es algo que se define a sí mismo como la base de una jerarquía de conceptos. Es un concepto muy abstracto, una entidad "ontológica superior" que define los conceptos del mundo de programación que está describiendo. En cierto sentido, el concepto de tipo es el big bang de su entorno de programación.

que sugieren que este artículo muy perspicaz:

http://www.cafepy.com/article/python_types_and_objects/python_types_and_objects.html

0

Tipos surgió de cómo los datos se almacenan en la memoria. Un entero almacenado en la memoria se parece a un número normal: x = 6 se traduce a la memoria como 00000110. Pero, ¿cómo se ve el 6.5? ¿Qué tal la carta x?

Ya que podemos únicas cosas almacenar como una serie de unos o ceros, lo que necesitamos saber cuáles son los ceros y unos decir, esto es, donde los tipos vienen en. De lo contrario, podría almacenar un número como x = 66 y volver la letra B

3

Aquí es la mejor definición que he encontrado:

A proof is a program. The formula that it proves is a type for the program.

Aquí, "programa" se entiende de manera muy general, y se refiere a cualquier construcción en el lenguaje de programación que se pueden re Asoned en ese idioma (ya sea un valor irreductible, una expresión, una función o una aplicación completa).

Algunos lenguajes de programación, los llamados lenguajes "tipados estáticamente", incluyen un lenguaje auxiliar (llamado sistema de tipos) para hacer declaraciones sobre programas. Declaraciones que, si el programa es correcto, siempre deberían ser verdaderas. Entonces, en cierto sentido, los tipos también son programas, interpretados por un programa adicional llamado verificador de tipos. Algunos sistemas de tipo requieren que el programador haga declaraciones explícitas sobre los tipos, donde el verificador de tipos asegura que sus programas se correspondan con esas declaraciones y le dará un error si no lo hacen. Otros sistemas intentan inferir el tipo más general para sus programas automáticamente y le darán un error si no se puede inferir dicho tipo.