Noções básicas sobre registros F#
O objetivo deste artigo é ilustrar como os registros F# podem ser definidos e usados. Aqui, vamos falar sobre a sintaxe necessária para definir registros, acessar seus campos e criar instâncias de registros.
Além disso, falaremos sobre as vantagens de usar registros F#, como o fato de serem imutáveis e também oferecerem suporte à correspondência de padrões.
Registros F#
O registro F# é semelhante a uma classe ou struct em outra linguagem de programação, mas há algumas diferenças importantes que os tornam especiais em relação a outras linguagens de programação.
Os valores de registro são imutáveis por padrão, o que significa que, uma vez criados, não podem ser alterados.
Um tipo de registro pode ser considerado como outro tipo de valor, portanto, é semelhante a um tipo de referência, pois é passado como um valor em vez de uma referência a outro registro.
Sintaxe
type website = { title : string; url : string }
Criar um registro F#
Para criar um registro, você precisa especificar os campos do registro.
Suponha que criássemos um registro para o site chamado home, por exemplo:
let homepage = { Title = "mrexamples"; Url = "www.mrexamples.com" }
Abaixo está um exemplo que ilustra claramente o conceito de registros.
Declarar registro em F#
Existem dois tipos de registros definidos, a saber:
- Registros que são definidos pela palavra-chave type .
- Registros que contêm campos.
Ambos são definidos por uma lista de campos separados por ponto e vírgula.
A sintaxe para definir um registro é a seguinte:
type recordName = { [ fieldName : dataType ] + }
Definindo um tipo de registro chamado site
Abaixo está um exemplo de definição de registros do nome do site e suas urls:
Example:
No exemplo acima, são impressos os seguintes registros:
Home: Title: mrexample URL: https://mrexamples.com/ Learn F# from mrexamples: Title: Learn F# URL: https://mrexamples.com/f-sharp/ Learn Python from mrexamples: Title: Learn Python URL: https://mrexamples.com/python/ Learn Python from mrexamples: Title: Learn PHP URL: https://mrexamples.com/php/
Outro exemplo de criação de um registro sobre um animal de estimação:
Example:
A saída será como:
Exemplo de Explicação
No exemplo acima, definimos um tipo de registro chamado Pet com quatro campos: Nome do tipo string , Idade do tipo int, Espécie do tipo string e Proprietário do tipo string.
Em seguida, criamos uma instância do registro Pet chamada myPet com os valores “ Cute ” para o nome, 2 para a idade, “ Dog ” para a espécie e “ Christopher ” para o dono.
Em seguida, usamos a função printfn para imprimir o nome e a idade do registro myPet no console.
Por fim, definimos uma função chamada printPetAge que recebe um registro Pet como entrada e usa correspondência de padrões para extrair o campo Age e imprimi-lo no console . Se o campo Idade não estiver presente no registro de entrada, a função imprime “ Não é possível determinar a idade do animal ”.
A função printPetAge é chamada com o registro myPet como argumento e imprime A idade do animal é 2 no console.
Registros de Registro de Alunos
Segue abaixo um exemplo de cadastro de cadastro de aluno:
Example:
Os resultados de antes e depois do registro serão exibidos da seguinte forma:
Before Registration: : {Name = Jennifer; ID = 105; Registration = null; IsRegistered = false} After Registration: : {Name = Jennifer; ID = 105; Registration = Registered; IsRegistered = true}