我可以通过哪些不同的方式来声明对泛型类型进行操作的类型?
我看到了以下语法:
// There's a generic type called Aggregate that will be operated on by the Id type
type 'Aggregate Id = Created of 'Aggregate
上面的语法是进行以下声明的替代方法吗?
// The Id type operates on a generic type called 'Aggregate
type Id<'Aggregate> = Created of 'Aggregate
我试图引用以下 documentation .但是,我没有看到替代技术的示例。
最佳答案
据我所知,第一个是从 OCaml/ML 中提取的旧语法。
就单参数泛型而言,两者是相同的。多参数泛型如
type 'a 'b Id = ...
不工作。你将不得不做
type ('a, 'b) Id = ...
我发现该语法非常不幸,因为所有 .NET - 接口(interface)代码和文档将始终使用 C# 语法
type Id<'a, 'b> = ...
VSCode/Ionide(以防万一您使用它们)也使用 C# 表示法。我个人也为单参数泛型切换到 C# 表示法,只是为了在所有地方都使用相同的表示法
关于generics - 我可以通过哪些不同的方式来声明对泛型类型进行操作的类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42110281/