f# - 列表中的扩展方法?

标签 f# extension-methods

如何在 F# 列表上定义扩展方法?

像这样天真的尝试会导致错误:

type list with
    member this.abc() = 100

最佳答案

正确的语法是:

type List<'a> with
    member this.abc() = 100

您可以使用限定名 Microsoft.FSharp.Collections.List<'a>也一样,但类型缩写 list<'a>无法使用。

也就是说,使用模块函数更加地道。您应该制作一个模块功能,以便通过管道 (|>) 轻松与其他功能组合。运营商:

module List = 
    let abc (xs: _ list) = 100

关于f# - 列表中的扩展方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15090990/

相关文章:

c# - 操作无法完成,因为 DbContext 已被处置错误

c# - 方法参数中的 'this' 关键字是什么意思?

c# - IQueryable 扩展 : create lambda expression for querying a column for a keyword

generics - Seq.iter 比 native 映射慢 : any generic solution?

dependency-injection - Dependency Injection,将一个 "injectable"的对象(服务)注入(inject)到一个newable(实体)中

c# - 在静态方法(扩展方法)中取消订阅匿名事件处理程序

F# 程序在 fsi 中正确运行,但作为 exe 挂起

syntax - 这两种语法之间的区别

f# - FsCheck DataGen 为空

f# - f# 如何决定在启动时运行哪个文件?