例如,如果我想要Nullable(x)的文字类型,如
let x = 6x // nullable literal type
创建自己的文字类型是真的吗?
答案 0 :(得分:11)
F#spec:
带有后缀Q,R,Z,I,N,G的整数文字通过以下语法翻译用于用户定义和库定义的类型: 的 XXXX<后缀GT; 强>
例如,如下定义模块NumericLiteralZ允许使用文字形式32Z来生成32个“Z”字符的序列。没有文字语法可用于32位整数范围之外的数字。
module NumericLiteralZ =
let FromZero() = ""
let FromOne() = "Z"
let FromInt32 n = String.replicate n "Z"
// nullables
open System
module NumericLiteralN =
let FromZero() = Nullable(0)
let FromOne() = Nullable(1)
let FromInt32(i : int) = Nullable(i)
printfn "%A" 0N
printfn "%A" 1N
printfn "%A" 100N.HasValue