По-перше, я визнаю можливість того, що це питання може бути дублікатом; просто дайте мені знати.
Мені цікаво, якою є загальна "найкраща практика" для тих ситуацій, коли бажана змінність. F #, здається, пропонує дві можливості для цього: let mutable
прив'язка, яка, здається, працює як змінні в "більшості" мов, і посилальна комірка (створена за допомогою ref
функції), для використання якої потрібно явне розмежування.
Є кілька випадків, коли один "примусово" переходить в той чи інший: .NET-взаємодія, як правило, використовує змінні з <-
, а в обчисленнях робочого процесу потрібно використовувати ref
з :=
. Отже, ці випадки досить чіткі, але мені цікаво, що робити при створенні власних змінних змінних поза цими сценаріями. Яку перевагу має один стиль перед іншим? (Можливо, подальше розуміння реалізації допоможе.)
Дякую!