Generics 我可以为自己的类型使用特殊的泛型语法吗?
在F#中,某些类型有一种特殊的泛型语法(我不确定它叫什么),因此您可以:Generics 我可以为自己的类型使用特殊的泛型语法吗?,generics,f#,Generics,F#,在F#中,某些类型有一种特殊的泛型语法(我不确定它叫什么),因此您可以: int list // instead of List<int> int option // instead of Option<int> int list//而不是list int option//而不是option 这个语法叫什么 我可以为我自己的类型启用它吗 这在 在“泛型类型”下: 泛型 类型参数泛型类型名称|'a列表 或 泛型类型名称|列表={ V:‘a’ };; 设stringDa
int list // instead of List<int>
int option // instead of Option<int>
int list//而不是list
int option//而不是option
- 这个语法叫什么
- 我可以为我自己的类型启用它吗
'a列表
或
泛型类型名称|列表={
V:‘a’
};;
设stringDave:dave={V=“string”};;
//val stringDave:dave={V=“string”;}
设intDave:intDave={V=123};;
//val intDave:dave={V=123;}
首先,需要注意的是,list
和list
之间的区别与前缀和后缀语法没有直接关系。类型'T list
只是类型list的别名
type List<'T> =
| ([]) : 'T list
| (::) : Head: 'T * Tail: 'T list -> 'T list
interface System.Collections.Generic.IEnumerable<'T>
interface System.Collections.IEnumerable
interface System.Collections.Generic.IReadOnlyCollection<'T>
interface System.Collections.Generic.IReadOnlyList<'T>
and 'T list = List<'T>
int list
int List
list<int>
List<int>
type MyCoolType<'a> = A | B
let x : int MyCoolType = A
// compiles ✔