gpt4 book ai didi

f# - ContainsKey 返回单位而不是 bool 值?

转载 作者:行者123 更新时间:2023-12-05 00:58:35 25 4
gpt4 key购买 nike

令我感到奇怪的是,以下代码会引发编译时错误。我不确定为什么 ContainsKey 返回单元。 documentation说它返回 bool 值。

open System.Collections.Generic    

let mydict = new Dictionary<string,'a>()

if(mydict.ContainsKey "mykey") then
mydict.["mykey"] = newkey

error FS0001: This expression was expected to have type 'bool' but here has type 'unit'

我是不是漏掉了什么?

最佳答案

if是一个表达式,因此两个分支必须具有相同的类型。如果else未指定分支 unit 类型的空分支被插入。这意味着您的 then分支还必须具有类型 unit .然而mydict.["mykey"] = newkey类型为 bool .如果要为 mykey 插入新值你应该使用 <-而不是 = :

if(mydict.ContainsKey "mykey") then
mydict.["mykey"] <- newkey

关于f# - ContainsKey 返回单位而不是 bool 值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47658374/

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