【问题标题】:F# TryGetValue, can't access the value?F# TryGetValue,无法访问值?
【发布时间】:2016-04-23 12:06:18
【问题描述】:

我在 F# 中的字典上使用 TryGetValue,它返回一个对象 bool * Dictionary<int, object>

我已经在谷歌上搜索了几个小时,但是如何访问该对象的 bool 组件以便检查它是否返回了值?

请不要让我去邮寄......

【问题讨论】:

    标签: f#


    【解决方案1】:

    有几个选项。

    最简单的大概是:

    let found, value = dict.TryGetValue key
    

    或者:

    let pair = dict.TryGetValue key
    let found = fst pair
    let value = snd pair
    

    最常见的模式是这样的:

    match dict.TryGetValue key with
      | true, value -> (* do something with value *)
      | _           -> (* handle the case of value not found *)
    

    【讨论】:

    • 智能感知和文档 (docs.microsoft.com/en-us/dotnet/api/…) 仅显示具有 2 个参数的方法重载: keyref value 。如何/在哪里可以找到单参数方法签名? (如果我使用带有一个参数的建议重载,它可以正常工作)
    • @Alex75 我不确定,但我相信这是 F# 编译器中针对返回 bool 并具有 out 参数的函数的特殊处理。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-14
    • 1970-01-01
    相关资源
    最近更新 更多