Valores (F#)
Os valores em F# são as quantidades que têm um tipo específico; valores podem ser números integral ou de ponto flutuante, caracteres ou texto, listas, seqüências, matrizes, tuplas, uniões discriminadas, registros, tipos de classe ou valores de função.
Um valor de vinculação.
O termo ligação significa associar a uma definição de um nome. O let palavra-chave é vinculado a um valor, como nos exemplos a seguir:
let a = 1
let b = 100u
let str = "text"
// A function value binding.
let f x = x + 1
O tipo de um valor é inferido a partir da definição. Para um tipo primitivo, como um número integral ou de ponto flutuante, o tipo é determinado o tipo do literal. Portanto, no exemplo anterior, o compilador infere o tipo de b ser unsigned int, enquanto o compilador infere o tipo de a ser int. O tipo de valor de um função é determinado do valor de retorno no corpo da função. Para obter mais informações sobre tipos de valor da função, consulte Funções (F#). Para obter mais informações sobre os tipos de literais, consulte Literais (F#).
Por que imutáveis?
Valores imutáveis são valores que não podem ser alterados no decorrer do curso da execução do programa. Se você está acostumado a linguagens como C++, Visual Basic ou C#, talvez seja surpreendente que F# coloca primacy sobre valores imutáveis, em vez de variáveis que podem ser atribuídas novos valores durante a execução de um programa. Dados imutáveis são um elemento importante da programação funcional. Em um ambiente multithread, variáveis mutáveis compartilhadas que podem ser alteradas por muitos threads diferentes são difíceis de gerenciar. Além disso, com variáveis mutáveis, às vezes é difícil dizer se uma variável pode ser alterada quando ele é passado para outra função.
Em linguagens funcionais puras, houverem variáveis e funções se comportam estritamente como funções matemáticas. Onde o código em um idioma procedimento usa uma atribuição de variável para alterar um valor, o código equivalente em uma linguagem funcional tem um valor imutável que é a entrada, uma função imutável e diferentes valores imutáveis, como a saída. Essa limitação matemática permite maior raciocinando sobre o comportamento do programa. Esse raciocínio maior é o que permite compiladores para verificar o código de forma mais rigorosa e otimizar com mais eficiência e ajuda a torna mais fácil para os desenvolvedores a compreender e escrever código correto. Código funcional, portanto, é provável que seja mais fácil de depurar do que o código de procedimento comum.
F# não é uma linguagem puramente funcional, embora ele dá suporte a programação funcional. Usando valores imutáveis é uma boa prática, pois isso permite que seu código para se beneficiar de um aspecto importante da programação funcional.
Variáveis mutáveis
Você pode usar a palavra-chave mutable para especificar uma variável que pode ser alterada. Mutáveis variáveis em F# geralmente devem ter um escopo limitado, como um campo de um tipo ou como um valor local. Mutáveis variáveis com um escopo limitado são mais fáceis de controlar e menos probabilidade de ser modificado de maneiras incorretas.
Você pode atribuir um valor inicial a uma variável mutável usando o let palavra-chave da mesma forma que você definiria um valor. No entanto, a diferença é que você subseqüentemente pode atribuir novos valores a variáveis mutáveis usando o <- operador, como no exemplo a seguir.
let mutable x = 1
x <- x + 1
Tópicos relacionados
Título |
Descrição |
---|---|
Fornece informações sobre como usar o let palavra-chave para vincular os nomes de valores e funções. |
|
Fornece uma visão geral das funções no F#. |