是否可以同时声明可变和不可变的值/绑定?

时间:2011-09-05 04:29:11

标签: f# tuples mutable let

例如我想声明

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 个答案:

答案 0 :(得分:4)

没有。 mutable适用于整个let绑定。你必须这样做:

let len, i = ...
let mutable i = i