gpt4 book ai didi

F# 集合初始值设定项语法

转载 作者:行者123 更新时间:2023-12-03 08:08:09 24 4
gpt4 key购买 nike

什么是collection initializer F#中的语法?在 C# 中,您可以编写如下内容:

new Dictionary<string, int>() {
{"One", 1},
{"two", 2}}

我如何在 F# 中做同样的事情?我想我可以推出自己的语法,但似乎应该已经有内置或标准的语法了。

最佳答案

正如 Jared 所说,对于任意集合没有内置支持。然而,C# 代码只是 Add 的语法糖。方法调用,因此您可以将其转换为:

let coll = MyCollectionType()
["One", 1; "Two", 2] |> Seq.iter coll.Add

如果你想花哨,你可以创建一个 inline进一步简化这一定义:
let inline initCollection s =
let coll = new ^t()
Seq.iter (fun (k,v) -> (^t : (member Add : 'a * 'b -> unit) coll, k, v)) s
coll

let d:System.Collections.Generic.Dictionary<_,_> = initCollection ["One",1; "Two",2]

关于F# 集合初始值设定项语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5341030/

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