gpt4 book ai didi

F# 字符串运算符在 guid 上爆炸

转载 作者:行者123 更新时间:2023-12-01 05:08:35 25 4
gpt4 key购买 nike

我的印象是,在 F# 中,以下两行应该给出相同的结果:

let a = string v
let a = v.ToString()

暗示 v 是一个对象。事实证明,如果 v 是 System.Guid,第一行只会抛出异常:

System.FormatException occurred
Message="Format String can be only \"D\", \"d\", \"N\", \"n\", \"P\", \"p\", \"B\" or \"b\"."
Source="mscorlib"
StackTrace:
at System.Guid.ToString(String format, IFormatProvider provider)
InnerException:

我当然可以单独处理Guids,问题是什么其他对象会给我同样的麻烦?我应该完全避免使用字符串运算符吗?在我的情况下,对象可能是任何东西

最佳答案

这是(将)在下一个版本中修复的错误。

(通常,它应该可以工作;该错误是因为 System.Guid 不响应 IFormattable“G”说明符,尽管 IFormattable 的文档说所有实现者都必须实现“G”说明符。所以这实际上是 System.Guid 中的一个错误,但 F# 库将在下一个版本的“字符串”运算符中解决这个错误。

简而言之,您可以安全地使用此运算符,目前除了 Guid,但很快就会修复。同时,您可以使用特殊情况的 Guid。)

关于F# 字符串运算符在 guid 上爆炸,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1930412/

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