F #: пусть изменчивый против ref
Во-первых, я признаю возможность того, что этот вопрос может быть дубликатом; просто дай мне знать.
Мне любопытно, какова общая «лучшая практика» для тех ситуаций, когда требуется изменчивость. F #, кажется, предлагает два средства для этого:let mutable
привязка, которая работает как переменные в «большинстве» языков, и ссылочная ячейка (созданная сref
функция), которая требует явного разыменования для использования.
Есть пара случаев, когда один «принудительно» переходит в один или другой: .NET-взаимодействие имеет тенденцию использовать изменяемый с<-
, и в вычислениях рабочего процесса нужно использоватьref
с:=
, Таким образом, эти случаи довольно ясны, но мне любопытно, что делать, когда я создаю свои изменяемые переменные вне этих сценариев. Какое преимущество имеет один стиль над другим? (Возможно, дальнейшее понимание реализации поможет.)
Спасибо!