热门标签 | HotTags
当前位置:  开发笔记 > 运维 > 正文

如何在F#中将特定类型分配给已区分的联合类型

如何解决《如何在F#中将特定类型分配给已区分的联合类型》经验,为你挑选了1个好方法。

假设我有以下几种类型:

type TypeA = { A: string }
type TypeB = { B: string }

我对他们两个都有联合体类型:

type MyUniOnType= TypeA | TypeB

使用仅包含联合类型的类型:

type MyCOntainer= { Union: MyUnionType }

现在,如果我创建联合类型中一种类型的实例:

let resultA = { A = "abc" }

当我尝试将该实例分配给容器中的值时

let result = { Union = resultA }

编译器抱怨说

编译错误(第10行,第24行):该表达式的类型为MyUnionType,但此处的类型为TypeA

但是TypeA 联合中指定的有效类型之一!如何将其分配给我的Union财产?

这是该程序的示例:https : //dotnetfiddle.net/fgJKpM



1> Lee..:

在中type MyUniOnType= TypeA | TypeBTypeA并且TypeB不引用前面的TypeATypeB记录,但是是该MyUnionType类型的null构造函数。如果希望它们包含这些类型的值,则需要将它们包括在定义中,例如

type MyUniOnType= TypeA of TypeA | TypeB of TypeB

您可能想要重命名构造函数,以避免它们与所包含的类型之间的混淆。

然后,您需要向构造函数提供相应的实例:

let resultA = TypeA { A = "abc" }


推荐阅读
  • Spring Boot 初学者指南(第一部分)
    本文介绍了Spring Boot框架的基础知识,包括其设计理念、主要优势以及如何简化传统的J2EE开发流程。 ... [详细]
  • 酷家乐 Serverless FaaS 产品实践探索
    本文探讨了酷家乐在 Serverless FaaS 领域的实践与经验,重点介绍了 FaaS 平台的构建、业务收益及未来发展方向。 ... [详细]
  • ODB 2.1.0 版本现已推出,此更新引入了多项新功能,如通过访问器、修饰符、函数及表达式访问数据成员,支持虚拟数据成员,并允许在数据成员上直接定义数据库索引等。 ... [详细]
  • jquery java 文件上传_jQuery文件上传
    插件描述:这是一个文件上传的展示,看很多插件,并不满意就自己写了一个,可能兼容性不是很好,没有准确进行测试过& ... [详细]
  • Kubernetes 实践指南:初次体验
    本文介绍了如何通过官方提供的简易示例,快速上手 Kubernetes (K8S),并深入理解其核心概念和操作流程。 ... [详细]
  • 深入解析Nacos服务自动注册机制
    本文将探讨Nacos服务自动注册的具体实现方法,特别是如何通过Spring事件机制完成服务注册。通过对Nacos源码的详细分析,帮助读者理解其背后的原理。 ... [详细]
  • SpringBoot底层注解用法及原理
    2.1、组件添加1、Configuration基本使用Full模式与Lite模式示例最佳实战配置类组件之间无依赖关系用Lite模式加速容器启动过程,减少判断配置类组 ... [详细]
  • 重新审视Kubernetes的必要性
    近期,我注意到不少人误以为我是Kubernetes的推广者。实际上,我只是分享了一些适合用Kubernetes解决的案例。本文旨在探讨Kubernetes的适用场景,并提供一些替代方案。 ... [详细]
  • 本文详细介绍了如何通过配置 Chrome 和 VS Code 来实现对 Vue 项目的高效调试。步骤包括启用 Chrome 的远程调试功能、安装 VS Code 插件以及正确配置 launch.json 文件。 ... [详细]
  • 微信小程序支付官方参数小程序中代码后端发起支付代码支付回调官方参数文档地址:https:developers.weixin.qq.comminiprogramdeva ... [详细]
  • UMPlatForm.NET 5.1 版本数据字典管理功能解析
    本文介绍了 UMPlatForm.NET 5.1 版本中的数据字典管理模块,探讨了该模块如何支持平台的数据共享与管理,以及如何通过用户和角色权限来增强系统的安全性。 ... [详细]
  • MVC框架下使用DataGrid实现时间筛选与枚举填充
    本文介绍如何在ASP.NET MVC项目中利用DataGrid组件增强搜索功能,具体包括使用jQuery UI的DatePicker插件添加时间筛选条件,并通过枚举数据填充下拉列表。 ... [详细]
  • 探讨行动的本质及其在个人成长中的作用,强调即时行动的重要性。 ... [详细]
  • 万事起于配置开发环境
    万事起于配置开发环境 ... [详细]
  • 本文介绍了Android SDK Platform Tools的核心功能及其重要性。作为Android SDK的一个关键组成部分,Platform Tools提供了开发者与Android设备进行交互所需的各种工具。 ... [详细]
author-avatar
我是王瑀
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有