gpt4 book ai didi

dictionary - TryGetValue 方法返回 value 或 false

转载 作者:行者123 更新时间:2023-12-03 00:11:59 26 4
gpt4 key购买 nike

我有一本字典并获取值:

open System.Collections.Generic
let price = Dictionary<string, int>()
Array.iter price.Add [|"apple", 5; "orange", 10|]
let buy key = price.TryGetValue(key) |> snd |> (<)
printfn "%A" (buy "apple" 7)
printfn "%A" (buy "orange" 7)
printfn "%A" (buy "banana" 7)

true

false

true

我在第三次调用中需要 false。如果找不到 key ,如何获取值或false?问题是 TryGetValue 返回 truefalse 取决于 key 是否找到,但 value 是由引用。

最佳答案

如果您为 TryGetValue 定义一个更像 F# 的适配器,您的生活会更轻松:

let tryGetValue k (d : Dictionary<_, _>) =
match d.TryGetValue k with
| true, v -> Some v
| _ -> None

有了这个,您现在可以像这样定义 buy 函数:

let buy key limit =
price |> tryGetValue key |> Option.map ((>=) limit) |> Option.exists id

这将为您提供所需的结果:

> buy "apple" 7;;
val it : bool = true
> buy "orange" 7;;
val it : bool = false
> buy "banana" 7;;
val it : bool = false

关于dictionary - TryGetValue 方法返回 value 或 false,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35126609/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com