F # действительно имеет byref
параметр . Вот пример со страницы MSDN:
type Incrementor(z) =
member this.Increment(i : int byref) =
i <- i + z
Также существуют изменяемые переменные (хотя есть важное различие между использованием ref
и mutable
переменных, которые могут использоваться для многих из тех же целей). Страница MSDN на эту тему очень информативна, включая обсуждение того, когда использовать какое ключевое слово / конструкцию.
Пример ссылочных переменных:
// Declare a reference.
let refVar = ref 6
// Change the value referred to by the reference.
refVar := 50
Пример изменяемых переменных:
// Declare a reference.
let mutable refVar = 6
// Change the value referred to by the reference.
refVar <- 50
Как вы можете видеть, синтаксис для присваивания (а также извлечения) также различен для двух конструкций.