Generics 泛型:类型应该对另一个类型进行操作,但对声明的文本值进行操作?

Generics 泛型:类型应该对另一个类型进行操作,但对声明的文本值进行操作?,generics,f#,type-providers,Generics,F#,Type Providers,我试图理解以下语法: type CarProvider = JsonProvider<JsonPath> JsonProvider<JsonPath> // What is this actually doing? open FSharp.Data [<Literal>] let JsonPath = "http://localhost:48213/api/cars" type CarProvider = JsonProvider<JsonPat

我试图理解以下语法:

type CarProvider = JsonProvider<JsonPath>
JsonProvider<JsonPath> // What is this actually doing?
open FSharp.Data

[<Literal>]
let JsonPath = "http://localhost:48213/api/cars"

type CarProvider = JsonProvider<JsonPath>
type CarProvider=JsonProvider
具体地说:

type CarProvider = JsonProvider<JsonPath>
JsonProvider<JsonPath> // What is this actually doing?
open FSharp.Data

[<Literal>]
let JsonPath = "http://localhost:48213/api/cars"

type CarProvider = JsonProvider<JsonPath>
JsonProvider//这实际上在做什么?
我想把它读为:

type CarProvider = JsonProvider<JsonPath>
JsonProvider<JsonPath> // What is this actually doing?
open FSharp.Data

[<Literal>]
let JsonPath = "http://localhost:48213/api/cars"

type CarProvider = JsonProvider<JsonPath>
“假设有一个名为CarProvider的类型,它本质上是一个JsonProvider类型,它对这个特定的字符串值(即某些文件路径)进行操作”

然而,我认为对于泛型,类型可以对其他类型进行操作。然而,在本例中,我们有一个类型(JsonProvider)操作字符串值,而不是实际的类型

有人能根据上面描述的示例语法礼貌地教我F#中的泛型吗

上下文:

type CarProvider = JsonProvider<JsonPath>
JsonProvider<JsonPath> // What is this actually doing?
open FSharp.Data

[<Literal>]
let JsonPath = "http://localhost:48213/api/cars"

type CarProvider = JsonProvider<JsonPath>
打开FSharp.Data
[]
让JsonPath=”http://localhost:48213/api/cars"
类型CarProvider=JsonProvider

您在示例中看到的是正在运行的。“静态参数”(尖括号中的位)是一个常量表达式,因此在设计时,该语言可以“动态”地从该输入中提供类型

类型提供程序的语法扩展了用于具有泛型类型args的命名类型的语法,我认为这就是造成混淆的原因。要明确的是,这不是泛型


您阅读示例的方式是绝对正确的。此类型提供程序真正酷的地方在于,您将在该类型上获得的IntelliSense将来自您键入时传入的
JsonPath
的HTTP API调用返回的JSON。

您要问的是类型提供程序的“静态参数”。