Значения (F#)
Значения в языке F# — это величины, которые имеют конкретный тип; значениями могут быть целые числа или числа с плавающей запятой, знаки или текст, списки, последовательности, массивы, кортежи, размеченные объединения, записи, типы классов или значения функций.
Привязка значения
Под привязкой понимается связывание имени с определением.Привязка значения выполняется с помощью ключевого слова let, как показано в следующих примерах.
let a = 1
let b = 100u
let str = "text"
// A function value binding.
let f x = x + 1
Вывод о типе значения делается на основе определения.Что касается простого типа, например целого числа или числа с плавающей запятой, тип определяется на основе типа литерала.Следовательно, в приведенном выше примере компилятор делает вывод, что тип значения b — unsigned int, а тип значения a — int.Тип значения функции определяется на основе возвращаемого значения в теле функции.Дополнительные сведения о типах значений функций см. в разделе Функции (F#).Дополнительные сведения о типах литералов см. в разделе Литералы (F#).
Преимущества постоянных значений
Постоянные значения — это значения, которые не могут быть изменены в течение всего хода выполнения программы.Тем, кто использует такие языки, как C++, Visual Basic или C#, может показаться удивительным, что в языке F# предпочтение отдается постоянным значениям, а не переменным, которым могут назначаться новые значения в ходе выполнения программы.Постоянные данные — важный элемент функционального программирования.В многопотоковой среде общими изменяющимися переменными, которые могут изменяться многими потоками, сложно управлять.Кроме того, при наличии изменяющихся переменных иногда может быть трудно определить, могла ли переменная быть изменена при передаче другой функции.
В чисто функциональных языках переменных не существует, и функции ведут себя строго математически.Там, где в коде процедурного языка для изменения значения используется операция присваивания переменной значения, в эквивалентном коде функционального языка имеются постоянное входное значение, постоянная функция и разные постоянные выходные значения.Такая математическая строгость позволяет точнее представлять поведение программы.Это, в свою очередь, позволяет компиляторам более строго проверять код и более эффективно выполнять оптимизацию, а также упрощает понимание кода разработчиками и помогает им правильно написать код.Следовательно, функциональный код, вероятно, проще в отладке, чем обычный процедурный код.
Язык F# не является чисто функциональным, но полностью поддерживает функциональное программирование.Рекомендуется использовать постоянные значения, что обеспечит коду преимущество благодаря применению важного аспекта функционального программирования.
изменяющиеся переменные
Чтобы задать переменную, которая может быть изменена, можно использовать ключевое слово mutable.Изменяющиеся переменные в языке F# обычно должны иметь ограниченную область, либо в виде поля типа, либо в виде локального значения.Изменяющиеся переменные с ограниченной областью легче в управлении и их неправильное изменение маловероятно.
Присвоить изменяющейся переменной начальное значение можно с помощью ключевого слова let так же, как при определении значения.Однако различие состоит в том, что изменяющимся переменным можно впоследствии присваивать новые значения с помощью оператора <-, как показано в следующем примере.
let mutable x = 1
x <- x + 1
Связанные разделы
Заголовок |
Описание |
---|---|
Приводятся сведения об использовании ключевого слова let для привязки имен к значениям и функциям. |
|
Дается краткий обзор функций языка F#. |