【问题标题】:Shortest way to initialize a dictionary初始化字典的最短方法
【发布时间】:2015-11-10 12:30:22
【问题描述】:

有没有更简洁的方法在 F# 中声明和初始化字典?

let grid = Map.empty
              .Add(0, true).Add(1, true).Add(2, true)
              .Add(3, true).Add(4, false).Add(5, true)
              .Add(6, true).Add(7, true).Add(8, true)

【问题讨论】:

    标签: f#


    【解决方案1】:

    我用:

    [0, true
     1, false
     2, true]
    |> Map.ofList
    

    【讨论】:

    • @ScottNimrod 是的,只需使用; 作为分隔符:[1, true; 2, false; 3, false], 用于创建元组,; 用作列表元素分隔符。
    【解决方案2】:

    @CaringDev 的回答很好,但还有另一个考虑因素。

    元组的元素具有键/值关系,因此为了清楚起见,我使用以下定义:

    let (=>) x y = x,y
    

    这让我可以编写一个可读性很强的self-documented 代码,如下所示:

    let myValue1 =
        Map [
            0 => true
            1 => false
            2 => false
        ]
    

    此外,let makeMap x = new Map<_,_>(x) 允许您以另一种风格编写代码,具体取决于您团队的编码约定:

    let myValue2 =
        [
            0 => true
            1 => false
            2 => false
        ] |> makeMap
    

    【讨论】:

      猜你喜欢
      • 2022-11-19
      • 1970-01-01
      • 2021-11-22
      • 2016-09-21
      • 2023-02-22
      • 2011-09-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多