Можно ли объявлять изменяемые и неизменяемые значения / привязки одновременно?

Например я хочу объявить

let len, (*mutable*) i =
            if s.Length >= 2 && s.[0] = '0' && (s.[1] = 'x' || s.[1] = 'X') then
                (s.Length - 2, 2)
            else (s.Length, 0)

константное связывание len и mutable i, возможно ли?

Добавлено: я буду использовать ссылки тогда

    let len, i =
        if s.Length >= 2 && s.[0] = '0' && (s.[1] = 'x' || s.[1] = 'X') then
            (s.Length - 2, ref 2)
        else (s.Length, ref 0)

1 ответ

Решение

Нет. mutable относится ко всему let связывание. Вам придется сделать:

let len, i = ...
let mutable i = i
Другие вопросы по тегам