F#:保存 JSON 数据

F#: Saving JSON data

我是编程新手,F# 是我的第一语言。

以下是我的代码的相关部分:

let internal saveJsonToFile<'t> (someObject:'t) (filePath: string) =  
    use fileStream = new FileStream(filePath, FileMode.OpenOrCreate) 
    (new DataContractJsonSerializer(typeof<'t>)).WriteObject(fileStream, someObject)

let testList = new List<Fighter>()

saveJsonToFile testList<Fighter> @"G:\User\Fighters.json"

我之前创建了一个 F# 类型的 Fighter 记录。

当我尝试 运行 "saveJsonToFile testList @"G:\User\Fighters.json"" 时,"testList" 带有红色下划线和错误消息:"Unexpected type arguments".

出了什么问题?我错过了什么?

首先,你的testList是一个,不是一个函数。
其次,它没有通用参数,它的主体中的一切都是具体的。

如果你想让它成为一个函数,给它一个参数。
如果您希望它是通用的,请在正文中说明。

let testList () = new List<'a>()
saveJsonToFile testList<Fighter>() @"G:\User\Fighters.json"

最后,您尝试创建的 List 可能解析为 F# 自己的 List,这是一个模块,而不是类型。
如果您打算创建 .NET 的 System.Collections.Generic.List,那么您需要指定完整的类型名称:

let testList () = new System.Collections.Generic.List<'a>()

但如果您打算创建 F# 本机列表,请使用其构造函数之一:

let testList () = []