【问题标题】:Is it possible to declare mutable and immutable values/bindings simultaneously?是否可以同时声明可变和不可变的值/绑定?
【发布时间】:2011-11-10 08:38:03
【问题描述】:

比如我要声明

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)

constant binding 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)

【问题讨论】:

    标签: f# tuples mutable let


    【解决方案1】:

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

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

    【讨论】:

    • 对。 ref 是一个独特的类型,而不是堆栈上的 mutable 值。
    猜你喜欢
    • 2022-01-08
    • 1970-01-01
    • 2018-11-26
    • 2011-09-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-05
    相关资源
    最近更新 更多