You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在F#中为ImmutableHashSet的嵌套Builder类添加扩展方法?

在F#中为ImmutableHashSet的嵌套Builder类添加扩展方法

你可以通过以下两种可行方式实现需求:

方法一:直接扩展嵌套的泛型Builder类型

在F#中,可直接针对Builder泛型类型本身编写扩展,无需通过外层ImmutableHashSet<'t>间接引用,语法如下:

open System.Collections.Immutable

type ImmutableHashSet.Builder<'t> with
    member this.NewMember() =
        // 编写你的扩展方法逻辑
        printfn $"扩展方法已调用,当前Builder元素数:{this.Count}"

CLR中嵌套类本质是独立类型,F#会自动解析ImmutableHashSet.Builder<'t>与ImmutableHashSet<'t>.Builder的嵌套关系,因此该语法有效。

方法二:用类型别名简化引用

若觉得直接引用嵌套类型不够直观,可先定义类型别名指向Builder类,再扩展该别名:

open System.Collections.Immutable

// 定义别名指向嵌套的Builder类
type ImmutableHashSetBuilder<'t> = ImmutableHashSet<'t>.Builder

// 扩展别名对应的类型
type ImmutableHashSetBuilder<'t> with
    member this.NewMember() =
        // 实现扩展逻辑
        ()

验证代码

用以下代码测试扩展方法是否正常工作:

let builder = ImmutableHashSet.CreateBuilder<int>()
builder.Add(1)
builder.Add(2)
// 调用扩展方法
builder.NewMember()

内容的提问来源于stack exchange,提问作者Franco Tiveron

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 15:03:26