gpt4 book ai didi

generics - ToString 为单位值抛出 NullReferenceException ()

转载 作者:行者123 更新时间:2023-12-02 19:37:09 25 4
gpt4 key购买 nike

假设我们有一个非常简单的函数

let fn a = a.ToString()

它的类型被推断为 a -> string但是,将单位值传递给函数会导致 NullReferenceException。

对于像上面这样的简单函数,这可能很容易解决,但我实际上处于更复杂的场景中:

let eitherToHttp e = 
match e with
| Either.Ok v -> OK (v.ToString())
| Either.Bad reason -> reasonToErrorCode reason

其类型为Either<'a, RejectReason> -> WebPart (WebPartEither 实际上是什么在这里无关紧要)

e 类型的场景中是 Either<unit, RejectReason>该函数的抛出与简单场景中完全相同。

我怎样才能以一种好的方式克服这个问题?如果实际上这不适用于所有类型,是否应该将类型推断为通用类型?

最佳答案

使用内置的string函数而不是在对象上调用ToString:

> string 42;;
val it : string = "42"
> string ();;
val it : string = ""

关于generics - ToString 为单位值抛出 NullReferenceException (),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41347374/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com