F#TryGetValue,无法访问该值?

Oli*_*ess 8 f#

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

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

请救我免邮...

Foo*_*ole 20

有几个选择.

最简单的可能是:

let found, value = dict.TryGetValue key
Run Code Online (Sandbox Code Playgroud)

或者:

let pair = dict.TryGetValue key
let found = fst pair
let value = snd pair
Run Code Online (Sandbox Code Playgroud)

最常见的模式是:

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

  • 智能感知和文档(https://learn.microsoft.com/en-us/dotnet/api/system.collections.generic.dictionary-2.trygetvalue?view=netframework-4.8)仅显示带有2个参数的方法重载: __key__ 和 __ref value__ 。如何/在哪里可以找到单参数方法签名?(如果我使用带有一个参数的建议重载,它可以工作) (3认同)
  • @Alex75 我不确定,但我相信这是 F# 编译器中对返回 bool 并具有 out 参数的函数的特殊处理。 (2认同)