Tipos de F#

Este tópico descreve os tipos que são usados em F# e como os tipos de F# são nomeados e descritos.

Resumo dos tipos de F#

Alguns tipos são considerados tipos primitivos, como, por exemplo, o tipo booleano bool e tipos de ponto flutuante e de integral de vários tamanhos, que incluem tipos de bytes e caracteres. Esses tipos são descritos na Tipos primitivos (F#).

Outros tipos que são criados para o idioma incluem tuplas, listas, matrizes, seqüências, registros e uniões de discriminated. Se você tiver experiência com os outros.NET de idiomas e são o aprendizado F#, você deve ler os tópicos para cada um desses tipos. Links para mais informações sobre esses tipos são incluídos na Tópicos relacionados seção deste tópico. Essas F#-estilos de programação que são comuns a linguagens de programação funcionais de suporte a tipos específicos. Muitos desses tipos associou módulos que suportam operações comuns nesses tipos na biblioteca F#.

O tipo de uma função inclui informações sobre os tipos de parâmetro e tipo de retorno.

O .NET Framework é a fonte dos tipos de objeto, tipos de interface, tipos delegate e outros. Você pode definir seus próprios tipos de objeto exatamente como faria em qualquer outro.NET compatível.

Além disso, o código de F# pode definir aliases, denominados abreviações do tipo, que são nomes alternativos para tipos. Você pode usar abreviações de tipo quando o tipo pode mudar no futuro e que você deseja evitar a alteração do código que depende do tipo. Ou, você pode usar uma abreviação de tipo como um nome amigável para um tipo que pode tornar o código mais fácil de ler e compreender.

Sintaxe para tipos

F# código, você freqüentemente precisa gravar os nomes de tipos. Cada tipo tem uma forma sintática e você usar esses formulários sintáticos nas anotações de tipo, declarações de método abstrato, declarações delegate, assinaturas e outras construções. Sempre que você declarar uma nova construção de programa o intérprete, o interpretador imprime o nome da construção e a sintaxe para o seu tipo. Esta sintaxe pode ser apenas um identificador para um tipo definido pelo usuário ou um identificador interno como para int ou string, mas para os tipos mais complexos, a sintaxe é mais complexo.

A tabela a seguir mostra os aspectos da sintaxe de tipo para tipos de F#.

Tipo

Sintaxe de tipo

Exemplos

tipo primitivo

type-name

int

float

string

tipo de agregação (classe, estrutura, união, registro, enum e assim por diante)

type-name

System.DateTime

Color

abreviação de tipo

type-abbreviation-name

bigint

tipo totalmente qualificado

namespaces.type-name

ou

modules.type-name

ou

namespaces.modules.type-name

System.IO.StreamWriter

Matriz

type-name[] ou

Matriz type-name

int[]

array<int>

int array

matriz bidimensional

type-name[,]

int[,]

float[,]

matriz tridimensional

type-name[,,]

float[,,]

tupla

type-name1 * type-name2 ...

Por exemplo, (1,'b',3) tem tipo int * char * int

tipo genérico

type-parameter generic-type-name

ou

generic-type-name<type-parameter-list>

'a list

list<'a>

Dictionary<'key, 'value>

construídos de tipo (um tipo genérico tem um argumento de tipo específico fornecido)

type-argument generic-type-name

ou

generic-type-name<type-argument-list>

int option

string list

int ref

option<int>

list<string>

ref<int>

Dictionary<int, string>

tipo de função possui um único parâmetro.

parameter-type1 -> return-type

Uma função que assume um int e retorna um string tem tipo int -> string

tipo de função que tem vários parâmetros

parameter-type1 -> parameter-type2 -> ... -> return-type

Uma função que assume um int e um float e retorna um string tem tipo int -> float -> string

função de ordem superior como um parâmetro.

(function-type)

List.maptem tipo('a -> 'b) -> 'a list -> 'b list

delegado

delegado defunction-type

delegate of unit -> int

tipo flexível

#type-name

#System.Windows.Forms.Control

#seq<int>

Tópicos relacionados

Tópico

Descrição

Tipos primitivos (F#)

Descreve os tipos simples internos, como tipos integrais, o tipo booleano e os tipos de caracteres.

Tipo de unidade (F#)

Descreve o unit tipo de um tipo que tem um valor e que é indicado pelo (a); equivalente a void em C# e Nothing na Visual Basic.

Tuplas (F#)

Descreve o tipo de tupla, um tipo que consiste em valores associados de qualquer tipo agrupados em pares, triples, quadruples e assim por diante.

Opções (F#)

Descreve o tipo de opção, um tipo que pode ter um valor ou estar vazio.

Listas (F#)

Descreve as listas que são uma série ordenada e imutável, dos elementos todos do mesmo tipo.

Matrizes (F#)

Descreve as matrizes, que são conjuntos ordenados de mutáveis elementos do mesmo tipo que ocupam um bloco contíguo de memória e são de tamanho fixo.

Seqüências (F#)

Descreve o tipo de seqüência, o que representa uma seqüência lógica de valores; os valores individuais são calculados somente quando necessário.

Registros (F#)

Descreve o tipo de registro, uma pequena agregação de valores nomeados.

Uniões discriminadas (F#)

Descreve o tipo de união discriminado, um tipo cujos valores podem ser qualquer um de um conjunto de tipos possíveis.

Funções (F#)

Descreve os valores de função.

Classes (F#)

Descreve o tipo de classe, um tipo de objeto que corresponde a um.Tipo de referência NET. Tipos de classe podem conter membros, propriedades, interfaces implementadas e um tipo base.

Estruturas (F#)

Descreve o o tipo destruct , um tipo de objeto que corresponde a um.Tipo do valor líquido. O struct tipo geralmente representa uma pequena agregação de dados.

Interfaces (F#)

Descreve os tipos de interface, que são os tipos que representam um conjunto de membros que fornecem certa funcionalidade, mas que não contêm dados. Um tipo de interface deve ser implementado por um tipo de objeto para ser útil.

Delegados (F#)

Descreve o tipo de delegado, que representa uma função como um objeto.

Enumerações (F#)

Descreve os tipos de enumeração, cujos valores pertencem a um conjunto de valores nomeados.

Atributos (F#)

Descreve os atributos que são usados para especificar os metadados para outro tipo.

Tipos de exceções (F#)

Descreve exceções, que especificam as informações de erro.