gpt4 book ai didi

.net - 如何使用 F# 的 Seq.cast 避免 "Value restriction"错误?

转载 作者:行者123 更新时间:2023-12-01 14:19:45 25 4
gpt4 key购买 nike

我看到 Seq 有一个从 IEnumerable 到 Seq 的转换函数,但我该如何让它工作?

open System.Text.RegularExpressions;;
let v = Regex.Match("abcd", "(ab)");;
Seq.cast (v.Captures);;

这产生,

错误 FS0030:值限制。值“it”已被推断为具有通用类型 验证它:seq<'_a>
要么将“它”定义为一个简单的数据项,使其成为一个带有显式参数的函数,或者,如果您不希望它成为通用的,则添加一个类型注释。

最佳答案

明确类型:

Seq.cast<Match> (v.Captures)

否则cast需要上下文来推断正确的返回类型,并且像那里一样单独一行,没有这样的类型推断使用的上下文。

(此行将非通用 IEnumerable 转换为通用 IEnumerable<Match> a.k.a. seq<Match>。)

关于.net - 如何使用 F# 的 Seq.cast 避免 "Value restriction"错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2993731/

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