Tipos en F#F# Types

En este tema se describen los tipos que se usan en F # y cómo se denominan y describen los tipos de F #.This topic describes the types that are used in F# and how F# types are named and described.

Resumen de tipos de F #Summary of F# Types

Algunos tipos se consideran tipos primitivos, como el tipo booleano bool y los tipos de punto flotante y entero de varios tamaños, que incluyen tipos para bytes y caracteres.Some types are considered primitive types, such as the Boolean type bool and integral and floating point types of various sizes, which include types for bytes and characters. Estos tipos se describen en tipos primitivos.These types are described in Primitive Types.

Otros tipos que se integran en el lenguaje incluyen tuplas, listas, matrices, secuencias, registros y uniones discriminadas.Other types that are built into the language include tuples, lists, arrays, sequences, records, and discriminated unions. Si tiene experiencia con otros lenguajes de .NET y está aprendiendo F #, debe leer los temas de cada uno de estos tipos.If you have experience with other .NET languages and are learning F#, you should read the topics for each of these types. Estos tipos específicos de F # admiten estilos de programación comunes a los lenguajes de programación funcionales.These F#-specific types support styles of programming that are common to functional programming languages. Muchos de estos tipos tienen módulos asociados en la biblioteca de F # que admiten operaciones comunes en estos tipos.Many of these types have associated modules in the F# library that support common operations on these types.

El tipo de una función incluye información sobre los tipos de parámetro y el tipo de valor devuelto.The type of a function includes information about the parameter types and return type.

La .NET Framework es el origen de los tipos de objeto, los tipos de interfaz, los tipos de delegado y otros.The .NET Framework is the source of object types, interface types, delegate types, and others. Puede definir sus propios tipos de objeto igual que en cualquier otro lenguaje .NET.You can define your own object types just as you can in any other .NET language.

Además, el código de F # puede definir alias, que son abreviaturas de tipocon nombre, que son nombres alternativos para los tipos.Also, F# code can define aliases, which are named type abbreviations, that are alternative names for types. Puede usar las abreviaturas de tipo cuando el tipo cambie en el futuro y desee evitar cambiar el código que depende del tipo.You might use type abbreviations when the type might change in the future and you want to avoid changing the code that depends on the type. O bien, puede usar una abreviatura de tipo como nombre descriptivo para un tipo que pueda facilitar la lectura y comprensión del código.Or, you might use a type abbreviation as a friendly name for a type that can make code easier to read and understand.

F # proporciona tipos de colección útiles que se han diseñado pensando en la programación funcional.F# provides useful collection types that are designed with functional programming in mind. El uso de estos tipos de colección le ayuda a escribir código que es más funcional en estilo.Using these collection types helps you write code that is more functional in style. Para obtener más información, vea tipos de colección de F #.For more information, see F# Collection Types.

Sintaxis para tiposSyntax for Types

En el código de F #, a menudo es necesario escribir los nombres de los tipos.In F# code, you often have to write out the names of types. Cada tipo tiene una forma sintáctica y estas formas sintácticas se utilizan en anotaciones de tipo, declaraciones de método abstractas, declaraciones de delegado, firmas y otras construcciones.Every type has a syntactic form, and you use these syntactic forms in type annotations, abstract method declarations, delegate declarations, signatures, and other constructs. Siempre que declare una nueva construcción de programa en el intérprete, el intérprete imprime el nombre de la construcción y la sintaxis de su tipo.Whenever you declare a new program construct in the interpreter, the interpreter prints the name of the construct and the syntax for its type. Esta sintaxis puede ser simplemente un identificador de un tipo definido por el usuario o un identificador integrado como para int o string , pero para tipos más complejos, la sintaxis es más compleja.This syntax might be just an identifier for a user-defined type or a built-in identifier such as for int or string, but for more complex types, the syntax is more complex.

En la tabla siguiente se muestran aspectos de la sintaxis de tipos para los tipos de F #.The following table shows aspects of the type syntax for F# types.

TipoType Sintaxis de tiposType syntax EjemplosExamples
tipo primitivoprimitive type nombre de tipotype-name int

float

string
tipo de agregado (clase, estructura, Unión, registro, enumeración, etc.)aggregate type (class, structure, union, record, enum, and so on) nombre de tipotype-name System.DateTime

Color
abreviatura de tipotype abbreviation nombre de la abreviatura de tipotype-abbreviation-name bigint
tipo completofully qualified type namespaces. type-namenamespaces.type-name

oor

modules. Type: nombremodules.type-name

oor

namespaces. modules. Type: nombrenamespaces.modules.type-name
System.IO.StreamWriter
arrayarray nombre de tipo[] otype-name[] or

matriz de nombres de tipotype-name array
int[]

array<int>

int array
matriz bidimensionaltwo-dimensional array nombre de tipo[,]type-name[,] int[,]

float[,]
matriz tridimensionalthree-dimensional array nombre de tipo[,,]type-name[,,] float[,,]
tupletuple Type-nombre1 * Type-nombre2 ...type-name1 * type-name2 ... Por ejemplo, (1,'b',3) tiene el tipo int * char * intFor example, (1,'b',3) has type int * char * int
tipo genéricogeneric type type-parameter nombre-tipo genérico -parámetro-de-tipotype-parameter generic-type-name

oor

nombre-tipo -genérico < lista de parámetros de tipo>generic-type-name<type-parameter-list>
'a list

list<'a>

Dictionary<'key, 'value>
tipo construido (un tipo genérico que tiene un argumento de tipo específico proporcionado)constructed type (a generic type that has a specific type argument supplied) type-argument nombre-tipo genérico -tipo-argumentotype-argument generic-type-name

oor

nombre-tipo -genérico < lista de argumentos de tipo>generic-type-name<type-argument-list>
int option

string list

int ref

option<int>

list<string>

ref<int>

Dictionary<int, string>
tipo de función que tiene un parámetro únicofunction type that has a single parameter parámetro-Type1 - > tipo de valor devueltoparameter-type1 -> return-type Una función que toma int y devuelve un string tipo tiene int -> stringA function that takes an int and returns a string has type int -> string
tipo de función que tiene varios parámetrosfunction type that has multiple parameters parámetro-Type1 - > parámetro: tipo2 - > ...- > return-typeparameter-type1 -> parameter-type2 -> ... -> return-type Una función que toma int y float y devuelve un string tipo. int -> float -> stringA function that takes an int and a float and returns a string has type int -> float -> string
función de orden superior como parámetrohigher order function as a parameter (tipo de función)(function-type) List.map tiene el tipo ('a -> 'b) -> 'a list -> 'b listList.map has type ('a -> 'b) -> 'a list -> 'b list
delegadodelegate Delegado de tipo de funcióndelegate of function-type delegate of unit -> int
tipo flexibleflexible type #nombre de tipo#type-name #System.Windows.Forms.Control

#seq<int>
TemaTopic DescripciónDescription
Tipos primitivosPrimitive Types Describe los tipos simples integrados, como los tipos enteros, el tipo booleano y los tipos de caracteres.Describes built-in simple types such as integral types, the Boolean type, and character types.
Unit (Tipo)Unit Type Describe el unit tipo, un tipo que tiene un valor y que se indica mediante (); equivalente a void en C# y Nothing en Visual Basic.Describes the unit type, a type that has one value and that is indicated by (); equivalent to void in C# and Nothing in Visual Basic.
TuplasTuples Describe el tipo de tupla, un tipo que consta de valores asociados de cualquier tipo agrupados en pares, tripas, cuadruplican, etc.Describes the tuple type, a type that consists of associated values of any type grouped in pairs, triples, quadruples, and so on.
OpcionesOptions Describe el tipo de opción, un tipo que puede tener un valor o estar vacío.Describes the option type, a type that may either have a value or be empty.
ListasLists Describe las listas, que son una serie ordenada e inmutable de elementos del mismo tipo.Describes lists, which are ordered, immutable series of elements all of the same type.
MatricesArrays Describe las matrices, que son conjuntos ordenados de elementos mutables del mismo tipo que ocupan un bloque de memoria contiguo y tienen un tamaño fijo.Describes arrays, which are ordered sets of mutable elements of the same type that occupy a contiguous block of memory and are of fixed size.
SecuenciasSequences Describe el tipo de secuencia, que representa una serie lógica de valores; los valores individuales se calculan solo según sea necesario.Describes the sequence type, which represents a logical series of values; individual values are computed only as necessary.
RegistrosRecords Describe el tipo de registro, un agregado pequeño de valores con nombre.Describes the record type, a small aggregate of named values.
Uniones discriminadasDiscriminated Unions Describe el tipo de Unión discriminada, un tipo cuyos valores pueden ser cualquiera de un conjunto de tipos posibles.Describes the discriminated union type, a type whose values can be any one of a set of possible types.
FuncionesFunctions Describe los valores de función.Describes function values.
ClasesClasses Describe el tipo de clase, un tipo de objeto que corresponde a un tipo de referencia de .NET.Describes the class type, an object type that corresponds to a .NET reference type. Los tipos de clase pueden contener miembros, propiedades, interfaces implementadas y un tipo base.Class types can contain members, properties, implemented interfaces, and a base type.
EstructurasStructures Describe el struct tipo, un tipo de objeto que corresponde a un tipo de valor de .net.Describes the struct type, an object type that corresponds to a .NET value type. structNormalmente, el tipo representa un agregado pequeño de datos.The struct type usually represents a small aggregate of data.
InterfacesInterfaces Describe los tipos de interfaz, que son tipos que representan un conjunto de miembros que proporcionan ciertas funciones, pero que no contienen datos.Describes interface types, which are types that represent a set of members that provide certain functionality but that contain no data. Un tipo de interfaz debe ser implementado por un tipo de objeto para que sea útil.An interface type must be implemented by an object type to be useful.
DelegadosDelegates Describe el tipo de delegado, que representa una función como un objeto.Describes the delegate type, which represents a function as an object.
EnumeracionesEnumerations Describe los tipos de enumeración, cuyos valores pertenecen a un conjunto de valores con nombre.Describes enumeration types, whose values belong to a set of named values.
AtributosAttributes Describe los atributos, que se usan para especificar los metadatos de otro tipo.Describes attributes, which are used to specify metadata for another type.
Tipos de excepciónException Types Describe las excepciones, que especifican la información de error.Describes exceptions, which specify error information.