Seq.cast 因为这看起来非常难看: seq { yield (box -6ren">
gpt4 book ai didi

casting - Seq.cast 元组值从 obj 到字符串

转载 作者:行者123 更新时间:2023-12-04 14:24:54 25 4
gpt4 key购买 nike

做这样的 Actor 阵容的好方法是什么?

seq { yield (box "key", box "val") }
|> Seq.cast<string*string>

因为这看起来非常难看:
seq { yield (box "key", box "val") }
|> Seq.map (fun (k,v) -> k.ToString(), v.ToString())

还有这个:
seq { yield (box "key", box "val") }
|> Seq.map (fun (k,v) -> unbox<string>(k), unbox<string>(v))

有没有办法将一个元组“拆箱”成另一个元组?

最佳答案

你可以把它写得稍微好一点:

seq { yield (box "key", box "val") }
|> Seq.map (fun (k, v) -> string k, string v)

然而,想象一下,你有一个 Tuple2模块:
module Tuple2 =
// ... other functions ...

let mapBoth f g (x, y) = f x, g y

// ... other functions ...

有了这样的 mapBoth函数,你可以把你的 Actor 写成:
seq { yield (box "key", box "val") } |> Seq.map (Tuple2.mapBoth string string)

没有 Tuple2 FSharp.Core 中的模块,但我经常在我的项目中定义一个,其中包含各种方便的单行代码,如上面的代码。

关于casting - Seq.cast 元组值从 obj 到字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38614685/

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