首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何向上转换为选项类型?

如何向上转换为选项类型?
EN

Stack Overflow用户
提问于 2018-01-31 20:33:15
回答 1查看 145关注 0票数 1

如何从字符串创建some string

我正在通过F# Koans教程,我是不是被困在了这个上面:

代码语言:javascript
复制
[<Koan>]
let ProjectingValuesFromOptionTypes() =
    let chronoTrigger = { Name = "Chrono Trigger"; Platform = "SNES"; Score = Some 5 }
    let halo = { Name = "Halo"; Platform = "Xbox"; Score = None }

    let decideOn game =

        game.Score
        |> Option.map (fun score -> if score > 3 then "play it" else "don't play")

    //HINT: look at the return type of the decide on function
    AssertEquality (decideOn chronoTrigger) (Some "play it")
    AssertEquality (decideOn halo) (Some "don't play")

我得到的例外是:

代码语言:javascript
复制
You have not yet reached enlightenment ...
  Expected: null
  But was:  <Some(don't play)>

如何将字符串向上转换为option string类型

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-01-31 20:49:32

如何将字符串向上转换为类型的选项字符串?

铸造有一个非常特殊的意义。您想要做的是用一个string包装您的Option,而不是转换它。为此,请使用Some构造函数:

代码语言:javascript
复制
let x = Some myString //x: string option

但是,我不认为这将修复您正在获得的断言错误(至少,它本身不会)。我不想在这里给出完整的答案(特别是因为这不是您要问的,并且找到答案是做Koan的全部意义),但是我将留下这个线索,说明为什么您在断言中看到了一个null

代码语言:javascript
复制
None |> printfn "Value: %A" // Value: <null>

有关该行为的更多信息,请参见为什么没有一个表示为null?

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48550980

复制
相关文章

相似问题

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