'of' 关键字和字符串输出
'of' keyword and string output
我刚接触 F#,对某些语法和结果感到困惑。
我有这种类型:
type ApplicationId = ApplicationId of System.Guid
据我所知,哪个 atm 应该是 Guid 的某种别名。问题是当我这样做时
let application = ApplicationId(System.Guid.NewGuid())
System.Console.WriteLine(application.ToString())
它给我打印这个
ApplicationId 7902aa4a-b262-48d9-8d05-ad1e2ed5f7e2
而我只期待 Guid 值。这到底是什么构造,导致 of
上的语言参考中的 3 个条目似乎不是它。
如果您只想要 type alias 作为 System.Guid
,那么试试这个:
type ApplicationId = System.Guid
let application : ApplicationId = System.Guid.NewGuid()
System.Console.WriteLine(application.ToString())
您的 ApplicationId
类型是包装 System.Guid
类型的 discriminated union,但不是它的别名。这就是为什么您的原始控制台输出表明您有一个包含在 ApplicationId
.
中的 GUID 值
我刚接触 F#,对某些语法和结果感到困惑。
我有这种类型:
type ApplicationId = ApplicationId of System.Guid
据我所知,哪个 atm 应该是 Guid 的某种别名。问题是当我这样做时
let application = ApplicationId(System.Guid.NewGuid())
System.Console.WriteLine(application.ToString())
它给我打印这个
ApplicationId 7902aa4a-b262-48d9-8d05-ad1e2ed5f7e2
而我只期待 Guid 值。这到底是什么构造,导致 of
上的语言参考中的 3 个条目似乎不是它。
如果您只想要 type alias 作为 System.Guid
,那么试试这个:
type ApplicationId = System.Guid
let application : ApplicationId = System.Guid.NewGuid()
System.Console.WriteLine(application.ToString())
您的 ApplicationId
类型是包装 System.Guid
类型的 discriminated union,但不是它的别名。这就是为什么您的原始控制台输出表明您有一个包含在 ApplicationId
.