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 () = []
我是编程新手,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 () = []