f# - Excel Dna/F 中的多态性#

标签 f# excel-dna

在 F#/Excel-Dna 中,为字符串向量重写以下函数的惯用方法是什么? (即对字符串“向量”(=1d Excel 范围)进行排序的函数)。

[<ExcelFunction(Category="Some Cat", Description="Sort 1d range filled with doubles.")>]
    let mySortDouble (vect : double[]) : double[] = 
        Array.sort vect

如果我只是将上述代码片段中的 double 类型替换为字符串类型,则会收到此错误消息:初始化 [错误] 方法未注册 - 不支持的签名、抽象或通用:'MyFSFunctions.mySortString'

我看到了this previous question Govert 建议使用“注册扩展”,但我还没有找到如何使用它来回答我当前的问题。

最佳答案

当您编写 mySortDouble 时,它​​甚至无法编译,因为它返回一个 double[],而不是一个 double。

这是一个有效的示例,添加了一些最少的错误处理。

[<ExcelFunction(Category="Some Cat", Description="Sort 1D range of strings.")>]
let SortStrings (vect : obj[]) = 
    try
        vect
        |> Seq.cast<string>
        |> Seq.sort
        |> Seq.toArray
        |> box
    with
    | ex -> box ExcelError.ExcelErrorNA

关于f# - Excel Dna/F 中的多态性#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55546497/

相关文章:

f# - 从 Visual Studio 2012 部署 Websharper 应用程序

c# - 根据调度程序将 async-await C# 代码转换为 F#

add-in - 从 Excel 公式中的 UDF 中删除加载项路径

c# - 在ExcelDna中获取excel计算模式

recursion - 在 F# 中使用免费 monad 是否意味着更长的启动时间和有限的指令?

f# - 将逗号分隔的字符串列表转换为整数列表

f# - IL 代码无效 - F#

c# - 如何根据 UsedRange 剪辑 ExcelReference?

c# - Excel-Dna C# 如何从 Excel 工作表中的选定范围获取值