首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将Union<'a>转换为Union

将Union<'a>转换为Union
EN

Stack Overflow用户
提问于 2014-01-21 21:37:28
回答 1查看 104关注 0票数 2

假设我有一个定义如下的F#区分联合:

代码语言:javascript
复制
type Union<'T> = | A of 'T | B | C

例如,如果我有一个这样的B,其中'Tint,我如何将它转换为另一个'TstringB?我有一个与此类似的联合,但有更多的情况,目前我的模式匹配如下:

代码语言:javascript
复制
let convert u =
  match u with
  | A(x) -> // some fancy logic here
  | B -> B
  | C -> C
EN

回答 1

Stack Overflow用户

发布于 2014-01-21 21:42:25

此函数通常称为map。第一个参数是用于转换内部值的函数(a -> b)

代码语言:javascript
复制
let map f = function
  | A(x) -> (A (f x))
  | B -> B
  | C -> C

您可以像这样使用它:

代码语言:javascript
复制
let stringUnion = (A(123)) |> map (fun i -> i.ToString())
票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21259766

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档