gpt4 book ai didi

types - 如何在 F# 中输入类型转换?

转载 作者:行者123 更新时间:2023-12-03 11:52:23 24 4
gpt4 key购买 nike

我必须枚举集合的成员并创建一个具有成员特定属性的数组:

  let ops: int array = [| for x in app.Operations ->
let op= x : IAzOperation
op.OperationID |]

这里 app.Operations是 IAzOperation 的集合,但在枚举时,将每个成员返回为 Obj .所以我想对每个成员进行类型转换并访问该属性。但不确定如何对其进行类型转换。
如果我按照我在此处提到的方式进行类型转换,则会出现以下错误:
This espression was expected to have type IAzOPeration but here has type obj.

我在这里缺少什么?

最佳答案

您需要向下转换运算符 :?> :

let ops: int array = [| for x in app.Operations do
let op = x :?> IAzOperation
yield op.OperationID |]

作为符号 ?顾名思义,向下转换可能会失败并导致运行时异常。

在序列的情况下,您可以选择使用 Seq.cast :
let ops: int array = 
[| for op in app.Operations |> Seq.cast<IAzOperation> -> op.OperationID |]

关于types - 如何在 F# 中输入类型转换?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9890304/

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